web-dev-qa-db-ja.com

VP9へのffmpegエンコーディングは、Google Chromeで再生できないビデオになりますが、VP8へのエンコードは機能します

主題で指定された問題に遭遇してから、かなりの時間が経過しました。

複数のffmpeg静的ビルドを試し、異なるフラグを使用して自分でGitリポジトリからビルドし、すべての主要なオペレーティングシステムで、libvpxをビルドしましたが、問題は解決しません。 ffmpegでVP9ビデオをエンコードできません。これにより、GoogleChromeがクラッシュしません。

私は4コアのIntel Core 2 Quad Q9550を持っています。たとえば、次のオプションでbrew-built 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

私はこれらのサイトを含めてインターネットでたくさん検索しましたが、役に立ちませんでした。

2

私はそれを理解したようです(面白いことに、私は何日も問題を抱えていて、質問が公開されたら最終的にそれを解決しました)。

ffmpegは、元のビデオのピクセル形式がYUV 4:2:2であることを確認し、それに応じて同じ形式にエンコードします。ただし、Google Chromeはこのピクセル形式では機能せず、YUV 4:2:0であると想定しているようです。

それで、私は-pix_fmt yuv420pをコマンドラインに渡してボイラーしました、私はグーグルクロームで再生可能なビデオを持っています!

4

同様の問題がありました。昨年エンコードしたWebM-VP9ビデオの一部はFirefoxで再生できましたが、再生できなかったものもありました(Firefox 44、45、Mac OSX)。しかし、Firefox 39はそれらすべてを再生できました!?

TranslucentCloudのヒントのおかげで、私はついにffprobeを使用していくつかのファイルをチェックしました。 yuv422p(tv)yuv420p(tv)の違いがあります。

エンコーディングの2回目の実行に-pix_fmt:v yuv420pオプションを追加すると、問題が解決しました。 Firefoxのすべてのバージョンで再生可能な素晴らしいビデオ。

0
Draussenduscher