web-dev-qa-db-ja.com

ffmpegを使用して生のビデオをH.264形式にエンコードする

Ubuntu 10.04では、以下のffmpegコマンドを使用して、生のビデオ(YUV形式)をH.264エンコードされたビデオにエンコードしようとしています。

ffmpeg -i input.mp4 output.h264

しかし、私は言ってエラーが出ます

出力ストリーム#0.0でサポートされていないコーデック

次に、このオプションを試すと:

ffmpeg -i input.mp4 -formats h264 output.h264

それでもエンコードされません。

今では、ffmpegがH.264形式へのエンコードにlibx264を使用していることがわかりました。これでx264パッケージ-このUbuntuに高速H.264エンコーダーがインストールされました。

私の質問:

  1. Ffmpegが必要とするこのlibx264とx264プログラムの間には何か関係がありますか?
  2. Libx264をインストールし、ffmpegでこれを使用してビデオをH.264形式にエンコードするにはどうすればよいですか?
9
goldenmean

まず、使用するコマンドは構文的に正しくありません。 ffmpegでx264を使用するには、-c:v libx264引数を指定する必要があります。

ここで、未加工のYUVファイルがある場合、ffmpegに使用するピクセル形式、サイズなどを指定する必要があります。

ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \
-c:v libx264 output.mp4

YUVファイルの仕様に従ってこれらを変更します。サポートされているピクセル形式のリストについては、ffmpeg -pix_fmtsをご覧ください。 fourcc.org もそのための優れたリソースです。

.264ファイルにそのままのH.264ビットストリームが必要な場合:

ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \
-c:v libx264 -f rawvideo output.264
11
slhck