同じ品質のFFMPEG分割MP4


51

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

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

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

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

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

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


3
これを読んでいる人にとっては参考にしてください:使用しないでください-sameq、それは「同じ品質」を意味しません
ザズ

回答:


81

再エンコードせずにビデオを分割する場合は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のビデオとsmallfile2.mp4が作成され、50分で開始し、largefile.mp4の最後で終了します。


2
mp4ファイルでこのメソッドを使用すると、作成されたすべてのファイルの最初の2秒がフリーズフレームとして取得されます(オーディオは通常どおり再生されます)。これの既知の理由は何ですか?
ロンハーレフ

バグのように聞こえます。最新のffmpegに更新します。
ロバート

@Robert 2010年以来何度も更新しています。ありがとう。
フィデリ

@RonHarlevこれは現在予想される動作です。再エンコードしないと、「キーフレーム」でのみビデオをカットできます。キーフレームの間にあるフレームは、完全な画像を構築するのに十分な情報をそれ自体で伝えません。参照: trac.ffmpeg.org/wiki/Seeking#Seekingwhiledoingacodeccopy
フィリップ・スラッシャー

3

代替それを行う方法は次のとおりです。

// 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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.