[解決済み] FFmpeg 動画を効率よく分割するには?
2022-11-13 09:29:18
質問
大きな avi ビデオを 2 つの小さな連続したビデオに分割したいのですが。私は ffmpeg を使用しています。
一つの方法は、ffmpegを2回実行することです。
ffmpeg -i input.avi -vcodec copy -acodec copy -ss 00:00:00 -t 00:30:00 output1.avi
ffmpeg -i input.avi -vcodec copy -acodec copy -ss 00:30:00 -t 00:30:00 output2.avi
しかし、ffmpeg の man ページによると、1 つの入力ファイルから複数の出力ファイルを作成するには、単に 一つ の行を使うことで複数の出力ファイルを作ることができます。
ffmpeg -i input.avi -vcodec copy -acodec copy -ss 00:00:00 -t 00:30:00 output1.avi \
-vcodec copy -acodec copy -ss 00:30:00 -t 00:30:00 output2.avi
質問ですが、後のアプローチは計算時間やメモリを節約できるのでしょうか?
どのように解決するのですか?
ffmpeg wiki は、"How to split video efficiently" に関連して、このページにリンクしています。私はこのページがその質問に答えているとは確信していないので、@AlcubierreDrive が提案したようにしました...
echo "Two commands"
time ffmpeg -v quiet -y -i input.ts -vcodec copy -acodec copy -ss 00:00:00 -t 00:30:00 -sn test1.mkv
time ffmpeg -v quiet -y -i input.ts -vcodec copy -acodec copy -ss 00:30:00 -t 01:00:00 -sn test2.mkv
echo "One command"
time ffmpeg -v quiet -y -i input.ts -vcodec copy -acodec copy -ss 00:00:00 -t 00:30:00 \
-sn test3.mkv -vcodec copy -acodec copy -ss 00:30:00 -t 01:00:00 -sn test4.mkv
どの出力が...
Two commands
real 0m16.201s
user 0m1.830s
sys 0m1.301s
real 0m43.621s
user 0m4.943s
sys 0m2.908s
One command
real 0m59.410s
user 0m5.577s
sys 0m3.939s
SD & HD ファイルをテストし、数回実行した後 & 少し計算しました。
Two commands SD 0m53.94 #2 wins
One command SD 0m49.63
Two commands SD 0m55.00
One command SD 0m52.26 #1 wins
Two commands SD 0m58.60 #2 wins
One command SD 0m58.61
Two commands SD 0m54.60
One command SD 0m50.51 #1 wins
Two commands SD 0m53.94
One command SD 0m49.63 #1 wins
Two commands SD 0m55.00
One command SD 0m52.26 #1 wins
Two commands SD 0m58.71
One command SD 0m58.61 #1 wins
Two commands SD 0m54.63
One command SD 0m50.51 #1 wins
Two commands SD 1m6.67s #2 wins
One command SD 1m20.18
Two commands SD 1m7.67
One command SD 1m6.72 #1 wins
Two commands SD 1m4.92
One command SD 1m2.24 #1 wins
Two commands SD 1m1.73
One command SD 0m59.72 #1 wins
Two commands HD 4m23.20
One command HD 3m40.02 #1 wins
Two commands SD 1m1.30
One command SD 0m59.59 #1 wins
Two commands HD 3m47.89
One command HD 3m29.59 #1 wins
Two commands SD 0m59.82
One command SD 0m59.41 #1 wins
Two commands HD 3m51.18
One command HD 3m30.79 #1 wins
SDファイル
= 1.35GB DVBトランスポートストリーム
HDファイル
= 3.14GB DVBトランスポートストリーム
結論
HD を処理する場合は、単一コマンドを使用したほうがよく、入力ファイルの後に -ss を使用して「スローシーク」を行うというマニュアルのコメントと一致します。SD ファイルでは、その差はごくわずかです。
2 コマンドのバージョンでは、入力ファイルの前にもう 1 つの -ss を追加して、「高速シーク」に続いてより正確な「低速シーク」を行うことで、より速く実行できるようになります。
関連
-
[解決済み] ffmpeg が MJPEG エンコード用に高画質な画像を生成する。
-
[解決済み] FFMPEG (libx264) "height not divisible by 2".
-
[解決済み] ffmpegの "setpts "フィルタは、具体的に何をするのですか?[クローズド]
-
ffmpeg 'XXXX' をコンパイルすると、非静的宣言エラーの解決策に従う。
-
[解決済み] H264コーデックで動画をエンコードするffmpegの使い方
-
[解決済み] ffmpegのコマンドラインでの "copy "は何をするのですか?
-
[解決済み] FFmpegを使って2つのMP4ファイルを連結する方法は?
-
[解決済み] FFmpegで動画を回転させる
-
ffmpeg -progress は進捗状況を表示します。
-
[解決済み】ffmpegでディレクトリ全体を変換する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] FFmpegです。RMTP ストリームで NetStream.Play.StreamNotFound が発生しました。
-
[解決済み] ffmpeg 入力された h264 を h265 に処理する際に無効なデータが見つかった
-
[解決済み] FFMPEG (libx264) "height not divisible by 2".
-
[解決済み] ffmpegの "setpts "フィルタは、具体的に何をするのですか?[クローズド]
-
[解決済み] H264コーデックで動画をエンコードするffmpegの使い方
-
[解決済み] ffmpegのコマンドラインでの "copy "は何をするのですか?
-
[解決済み] FFmpegを使って2つのMP4ファイルを連結する方法は?
-
[解決済み] FFmpegで動画を回転させる
-
[解決済み】ffmpegでディレクトリ全体を変換する方法とは?
-
[解決済み] ffmpegで.flacを.mp3に変換し、すべてのメタデータを保持する。