web-dev-qa-db-ja.com

同じ品質のMP4を分割するFFMPEG

1つの大きなMP4ファイルがあります。私はそれを小さなファイルに分割しようとしています。

ffmpeg -i largefile.mp4 -sameq -ss 00:00:00 -t 00:50:00 smallfile.mp4

-sameqを使用しても同じ品質設定が維持されると思いました。しかし、私はそれが何をしているのか理解してはなりません。

分割したファイルで同じ品質(オーディオ/ビデオ)と圧縮を維持したいと思っています。ただし、この設定により、分割ファイルがはるかに大きくなります。

同じ品質とサイズの比率を維持しながら、分割ファイルで同じ品質と属性を維持するには、どのフラグを設定する必要がありますか?

たとえば、元のファイルが約12 GBで1920x1080で、ビットレートが10617kbps、フレームレートが23フレーム/秒、6チャネルのオーディオが317kbpsの場合、分割ファイルはこのサイズの3分の1だけにします(私がそれを3つに分割した場合)。

58
Chris Weber

再エンコードせずにビデオを分割したい場合は、オーディオとビデオにcopyコーデックを使用します。これを試して:

_ffmpeg -ss 00:00:00 -t 00:50:00 -i largefile.mp4 -acodec copy \
-vcodec copy smallfile.mp4
_

これは最初の分割のみを作成することに注意してください。次は、_ffmpeg -ss 00:50:00_で始まるコマンドで実行できます。

これは単一のコマンドで行うことができます:

_ffmpeg -i largefile.mp4 -t 00:50:00 -c copy smallfile1.mp4 \
-ss 00:50:00 -c copy smallfile2.mp4
_

これにより、_smallfile1.mp4_の動画に50分で終わる_largefile.mp4_が作成され、50分から始まり__smallfile2.mp4_の最後で終わる_largefile.mp4_が作成されます。

88
fideli

Alternate方法は次のとおりです。

// create a 2-min clip
ffmpeg -i input.mp4 -ss 00:10:00 -to 00:12:00 -c copy output.mp4

/**
* -i  input file
* -ss start time in seconds or in hh:mm:ss
* -to end time in seconds or in hh:mm:ss
* -c codec to use 
*/

使用するため、ファイルの品質は変わりません-c copyは、元のオーディオ+ビデオストリームを出力にコピーします。

リファレンス、一般的に使用されるFFmpegコマンドのリスト: DigitalFortress

6
Niket Pathak