ffmpegを使用してmp4をwebmに高速変換する方法は?


20

HTML5ビデオを使用するWebサイトのために、76のmp4ファイルをwebmに変換する必要があります。私はmp4ファイルの10 Gbについて話しています...

ffmpeg -i input_file.mp4 output_file.webm

もちろん、私はそれを再帰的に行います:

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" "${0%%.mp4}.webm"' {} \;

私はインターネット上のどこかで見つけたものを試しました:

ffmpeg -i input_file.mp4 -cpu-used 4 -threads 8 output_file.webm

しかし、事は私が一週間もかからないことではないということです!!! 何が間違っていますか?それをスピードアップする方法はありますか?oggに変換すると、速度が向上しますか?助けてください!!!



@LordNeckbeardは、そのガイドに基づいて回答を作成する必要があります。また、x264と比べて、健全な設定などでも、糖蜜のようにvpxエンコーダーは遅いことに注意する必要があります...多くの品質を犠牲にしない限り、litはそれで本当に高速にエンコードすることは不可能です。
evilsoup

問題は互換性に関するものです。これは小さな互換性テーブルです。{x264:IE(+)Safari(+)Chrome(+)Firefox(-)Opera(-)} {webm:IE(-)Safari(-)Chrome (+)Firefox(+)Opera(+)} SafariとIEが市場の最大の部分を占めていると言うことは知っていますが、それを真剣に疑い、FirefoxとOperaに賭けます!;)
pr.nizar

@ pr.nizar CiscoがBSDでOpenH264をリリースしたおかげで、firefoxはh.264をサポートするようになりました。
Wyatt8740

回答:


11

ビデオのトランスコードには時間がかかります。また、エンコードパラメータに関するより多くの知識が必要です。ffmpegのデフォルトはあなたに適しているとは考えられず、使用可能な出力ファイルを作成することさえできません。

ここから始まります:

http://blog.pcode.nl/2010/10/17/encoding-webm-using-ffmpeg/

これらの設定は、特定の平均ビットレート(3900kbitのビデオビットレート)にエンコードされるため、ビットレートが急上昇します。

MP4とWebMは異なるビデオコーデックを使用するため、ショートカットはありません。ビデオをトランスコードする必要があります。

もちろん、エンコード速度は、フレームサイズ、フレームレート、品質設定によって大きく異なります。720pエンコードの場合、過去数年のCPUで約1:1(10時間で10時間のビデオ)をエンコードできると期待されるかもしれません。リンクで示されている例のように2パスABRエンコードを行う場合、ほぼ2倍になります。


8

それを2倍にするか、半分に切る?だから、それは行き止まりです..私はビットレートで遊ぶことはありません、私は品質やサイズに何を期待するかわかりません。

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \;

私は将来のユーザーのためにそれを投稿しています、実際には速度を上げましたが、私のCPUは地獄のように動作しています:各コアで60から80%!今では、時間がかからないだろうと思う:6または7の代わりに3日。私はそれがそれを破壊しないことを願っています。^ _ ^

とにかくありがとう!

編集:LordNeckbeardおよびneon_overloadからのコメントの後に-sameqスイッチを削除しました -sameqは同じ「品質」を意味しません


3
-sameq「同じ品質」という意味ではなく、アップストリームで削除されました。使用しないでください。libvpxエンコードの詳細な手順については、私のコメントの質問へのリンクを参照してください。
llogan

2
-sameqは同じ量子化器を意味しますが、h.264とVP8の間で量子化器を比較することは不可能であるため、これが機能したとしても、使用するとほぼ間違いなく壊れた結果が得られます-そうしないでください。
トーマスラッター

2
それに私の注意を向けてくれてありがとう!応答を編集しました。ジョブはこれで1日半で完了しました。find ./ -name '* .mp4' -exec bash -c 'avconv -i "$ 0" -vcodec libvpx -acodec libvorbis -cpu-used 5 -threads 8 " $ {0 %%。mp4} .webm "'{} \; このコメントで件名を変更していることは知っていますが、それを言う価値があると思いました。^ _ ^それが誰かの助けになることを願っています!;)
pr.nizar

品質については、元のファイルとトランスコードされたwebmの違いを実際に言うことはできません。ほとんど同じオーディオ品質とビデオ品質です。
pr.nizar

1
それでも、ffmpeg / avconvのデフォルトを使用するのではなく、crfまたはビットレートの値を設定することをお勧めします。
トーマスラッター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.