web-dev-qa-db-ja.com

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

ご迷惑をおかけして申し訳ありませんが、私はある種の問題を抱えています。 HTML5ビデオを使用するWebサイトのために、76のmp4ファイルをwebmに変換する必要があります。私はmp4ファイルの10 Gbについて話している...私はffmpegにそれを行うように単純に頼むことができることを知っている:

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に変換すると、速度が向上しますか?助けてください!!!

19
pr.nizar

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

ここから始まります:

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

これらの設定は特定のaverageビットレート(3900kbitのビデオビットレート)にエンコードされるため、ビットレートにスパイクが生じます。

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

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

11
thomasrutter

それを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は同じ「品質」を意味しません

8
pr.nizar