2016-10-20 9 views
1

ffmpegを使用してビデオを圧縮しようとしていますが、次のコマンドを使用しています。 ffmpeg -i data/video.mp4 -vcodec h264 -acodec mp2 data/output.mp4ffmpegでビデオが圧縮されていません

ただし、結果のビデオのサイズは元のビデオのサイズを超えています。なぜこのことが起こっているのか、私が使用しなければならない他のコマンドがあるかどうかを指摘できる人もいます。

答えて

2

ファイルサイズを小さくするには、低いビットレートを選択する必要があります。

使用しているffmpegパラメータは、デフォルトのffmpeg圧縮パラメータh264とmp2を使用します。
デフォルトのパラメータは、相対的に高品質でファイルサイズが大きくなるように設定されています。
平均ビットレート、一定ビットレート、最大ビットレート、およびその他のパラメータを制御できます。
はffmpegのドキュメントを参照してください:あなたは、より大きなファイルサイズを取得しているhttps://trac.ffmpeg.org/wiki/Encode/H.264#AdditionalInformationTips

理由は、入力ファイルがすでに圧縮されていることです。
元のビデオが非圧縮の生のビデオであった場合、圧縮されたファイルのサイズは元のサイズよりはるかに小さくなります。
transcoding」というプロセスを実行しています。
トランスコード処理は、入力を非圧縮形式に(通常)デコードし、別の(または同じ)codecを使用して再圧縮します。

は、入力ビデオのビットレート情報を確認してください:
How to get h264 video info?

ffprobe -show_streams -i "data/video.mp4" 

を見るには、ビットレートを下げるようにしてください:

ffmpeg -i data/video.mp4 -vcodec h264 -b:v 1000k -acodec mp2 data/output.mp4 

あなたはまた、維持することができますh265ビデオコーデックを使用してエンコードしてみてくださいより低いビットレートで高品質。

は、次の点を考慮してください

  • 低めのビットレート(通常は)低品質を結果。
  • ビデオトランスコードは、生のビデオを直接圧縮するよりも品質が低くなります。
関連する問題