VP8에 인코딩하는 동안 Chrome에서 재생할 수없는 비디오가 VP9로 인코딩되는 ffmpeg 결과


2

주제에 명시된 문제가 발생하여 많은 시간이 지났습니다.

나는 여러 번 시도했다. ffmpeg 정적 빌드, 지저트 저장소에서 다른 플래그 및 모든 주요 운영 체제에서 빌드했습니다. libvpx그러나 문제는 여전히 지속됩니다. ffmpeg를 인코딩 할 수 없습니다. VP9 동영상은 Google 크롬을 손상시키지 않습니다.

나는 Intel Core 2 Quad Q9550 4 개의 코어가 있고 예를 들어 brew -세워짐 ffmpeg 다음 옵션을 사용하십시오.

ffmpeg version 2.8.1 Copyright (c) 2000-2015 the FFmpeg developers
built with Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8.1_1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-libfreetype --enable-libvorbis --enable-libvpx --enable-libass --enable-ffplay --enable-libfdk-aac --enable-libopus --enable-libquvi --enable-libx265 --enable-nonfree --enable-vda
libavutil      54. 31.100 / 54. 31.100
libavcodec     56. 60.100 / 56. 60.100
libavformat    56. 40.101 / 56. 40.101
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 40.101 /  5. 40.101
libavresample   2.  1.  0 /  2.  1.  0
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  2.101 /  1.  2.101
libpostproc    53.  3.100 / 53.  3.100

문제의 동영상은 다음과 같습니다.

General 
Complete name : OneSecondTestYUV422.mov
Format : MPEG-4
Format profile : QuickTime
Codec ID : qt
File size : 13.0 MiB
Duration : 1s 0ms
Overall bit rate mode : Variable
Overall bit rate : 109 Mbps
Movie name : Untitled Project
Description : This video is about Untitled Project
Encoded date : UTC 2015-10-17 16:43:21
Tagged date : UTC 2015-10-17 16:43:22
Writing library : Apple QuickTime
com.apple.quicktime.keywords : ProRes Samples
com.apple.quicktime.author : No Name
com.apple.quicktime.title : Untitled Project

Video 
ID : 1
Format : ProRes
Format version : Version 0
Format profile : 422
Codec ID : apcn
Duration : 1s 0ms
Bit rate mode : Variable
Bit rate : 106 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 24.000 fps
Color space : YUV
Chroma subsampling : 4:2:2
Scan type : Progressive
Bits/(Pixel*Frame) : 2.138
Stream size : 12.7 MiB (98%)
Title : Core Media Video
Writing library : Apple
Encoded date : UTC 2015-10-17 16:43:21
Tagged date : UTC 2015-10-17 16:43:22
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709

Audio 
ID : 2
Format : PCM
Format settings, Endianness : Little
Format settings, Sign : Signed
Codec ID : lpcm
Duration : 1s 0ms
Bit rate mode : Constant
Bit rate : 2 304 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Bit depth : 24 bits
Stream size : 281 KiB (2%)
Title : Core Media Audio
Encoded date : UTC 2015-10-17 16:43:21
Tagged date : UTC 2015-10-17 16:43:22

Other 
ID : 3
Type : Time code
Format : QuickTime TC
Duration : 1s 0ms
Time code of first frame : 00:00:00:00
Time code, striped : Yes
Title : Core Media Time Code
Encoded date : UTC 2015-10-17 16:43:22
Tagged date : UTC 2015-10-17 16:43:22

그리고 내가 지나가는 명령 ffmpeg :

ffmpeg -i OneSecondTestYUV422.mov -map 0:0 -map 0:1 -c:a libvorbis -async 1 -c:v libvpx-vp9 -b:v 17418.24k -maxrate 34836.48k -bufsize 34836.48k -r 24 -s 1920x1080 -aspect 16:9 -trellis 0 -subq 6 -me_range 16 -b_strategy 1 -refs 3 -sws_flags fast_bilinear -direct-pred 1 -sc_threshold 40 -qmin 2 -qmax 51  -copyts -threads 4 -sn -y UnplayableResult.webm

나는 인터넷에서 많은 것을 검색했는데,이 사이트들은 포함되었지만 아무 소용이 없었다.


1
-trellis 0 -subq 6 -me_range 16 -b_strategy 1 -refs 3 -direct-pred 1 -sc_threshold 40. 이것들은 모두 libx264 옵션처럼 보입니다 (어쨌든 x264 사전 설정으로 인해 99.9 %의 시간이 필요하지는 않습니다). 이 옵션은에 의해 무시됩니다. libvpx-vp9.
llogan

감사합니다. 실제로 테스트를했습니다. iFFmpeg따라서이 관계없는 매개 변수는 기본적으로 삽입됩니다. 내 실제 인코딩 라인은 다음과 같습니다. ffmpeg -i OneSecondTestYUV422.mov -c:v libvpx-vp9 -b:v 4M -pix_fmt yuv420p -speed 4 -frame-parallel 0 -threads 4 -c:a libopus -b:a 320K PlayableResult.webm
TranslucentCloud

그게 더 제정신 이네요. 절대로 iFFmpeg에 대해 들어 보지 못했습니다.
llogan

iFFmpeg는 유료 ffmpeg GUI입니다. 테스트 용으로 만 사용되어 커맨드 라인에서 실제로 작업했습니다.
TranslucentCloud

답변:


3

내가 그것을 알아 내었던 것처럼 보인다 (우스운 일 동안 나는 문제를 가지고 있었고, 질문이 출판되면 그것을 마침내 해결했다).

ffmpeg 원본 동영상이 픽셀 형식임을 확인합니다. YUV 4:2:2 그에 따라 동일한 형식으로 인코딩합니다. 그러나 Google 크롬이이 픽셀 형식으로 작동하지 않는 것처럼 보입니다. YUV 4:2:0.

그래서, 나는지나 갔다. -pix_fmt yuv420p 명령 줄 및 소리에 Google 크롬 재생 가능 동영상이 있습니다.


나는 궁금하다. Supported pixel formats from line : ffmpeg -h encoder=libvpx-vp9?
llogan

물론입니다. 여기 있습니다: Supported pixel formats: yuv420p yuv422p yuv440p yuv444p
TranslucentCloud

0

비슷한 문제가있었습니다. 작년에 인코딩 한 WebM-VP9 동영상 중 일부는 Firefox에서 재생할 수 있었고 일부는 재생할 수 없었습니다 (Firefox 44, 45, Mac OS X). 그러나 파이어 폭스 39 그들 모두를 재생할 수 있습니다!?

TranslucentCloud의 힌트 덕분에 필자는 ffprobe를 사용하여 일부 파일을 확인했습니다. 그들은 단지 달랐다. yuv422p (텔레비젼) yuv420p (tv) .

추가 -pix_fmt:v yuv420p 인코딩의 두 번째 실행 옵션이 내 문제를 종료 시켰습니다. 모든 Firefox 버전에서 멋지고 재생 가능한 동영상.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.