[解決済み] ffmpegを使って開始時刻と終了時刻を基準に動画をカットする
質問内容
以下のコマンドで、動画の開始時刻と終了時刻を使って動画をカットしようとしました。
ffmpeg -ss 00:00:03 -t 00:00:08 -i movie.mp4 -acodec copy -vcodec copy -async 1 cut.mp4
上記のコマンドを使って、動画を
00:00:03
から
00:00:08
. しかし、それはそれらの時間の間にビデオをカットしていないその代わりに、それは最初の11秒でビデオをカットしています。
編集 1:
で提案されている以下のコマンドでカットしてみました。 マーク4o
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4
しかし、次のようなエラーが表示されました。
エンコーダ 'aac' は実験的ですが、実験的コーデックは有効ではありません。
を追加しました。
-strict -2
をコマンドに追加します。
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 -strict -2 cut.mp4
これで正常に動作するようになりました。
解決方法は?
3秒のところにキーフレームがないのでしょう。 非キーフレームは他のフレームとの差分を符号化するため、前のキーフレームから始まるすべてのデータが必要です。
mp4コンテナでは、編集リストを使って再エンコードすることなく、非キーフレームでカットすることが可能です。 つまり、3秒前の最も近いキーフレームが0秒であれば、0秒から始まるビデオをコピーし、エディットリストを使ってプレーヤーに3秒後の再生を開始するように指示します。
を使用している場合は 最新のffmpeg は、あなたが提供したコマンドを実行すると、編集リストを使ってこれを行います。 これがうまくいかない場合は、古いバージョンのffmpegを使用しているか、使用しているプレーヤーがエディットリストをサポートしていないかのどちらかだと思われます。 プレイヤーによっては、エディットリストを無視して、常にファイル内のすべてのメディアを最初から最後まで再生するものもあります。
非キーフレームから正確にカットし、エディットリストをサポートしていないプレーヤーで希望のポイントから再生したい場合、またはカットされた部分が実際に出力ファイルに含まれないようにしたい場合(機密情報を含む場合など)、希望の開始時刻に正確にキーフレームが存在するように再エンコードすることで可能になります。 を指定しない場合、再エンコーディングがデフォルトとなります。
copy
. 例えば
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4
再エンコードするときに、品質関連の追加オプションや特定の AAC エンコーダを含めたいこともあるでしょう。 詳細については、ffmpeg の x264エンコーディングガイド ビデオと AACエンコーディングガイド は音声用です。
また
-t
オプションは、終了時刻ではなく、継続時間を指定します。 上記のコマンドは、3秒から始まる8秒間のビデオをエンコードする。 3秒から始めて8秒で終了するには
-t 5
. 現在のバージョンのffmpegを使用している場合は、次のように置き換えることもできます。
-t
で
-to
を指定すると、指定した時刻に終了します。
関連
-
[解決済み】ffmpegの出力(tbc, tbn, tbr)の意味【非公開
-
[解決済み】DaVinci resolveでopenCLが使えるGPUが見つからなかった【終了しました
-
[解決済み] mp4.lvixのファイル拡張子は何ですか?また、安全に削除できますか?
-
[解決済み] ffmpegで字幕のデコードを無効にする方法
-
[解決済み] ffmpegの出力(tbc, tbn, tbr)の意味【非公開
-
[解決済み] YouTube埋め込み動画:異なるサムネイルを設定する
-
[解決済み] ffmpegを使用してフレームを抽出する最速の方法?
-
[解決済み] ffmpegを使って開始時刻と終了時刻を基準に動画をカットする
-
[解決済み] GitHub の wiki ページに YouTube の動画を埋め込むにはどうしたらいいですか?
-
[解決済み] .mp4 の正しい MIME タイプ
最新
-
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の出力(tbc, tbn, tbr)の意味【非公開
-
[解決済み】DaVinci resolveでopenCLが使えるGPUが見つからなかった【終了しました
-
[解決済み] FFMpeg -timestamp構文の使用方法
-
[解決済み] プライベートなYoutubeの動画を自分のサイトに埋め込むにはどうしたらいいですか?
-
[解決済み] YouTube埋め込み動画:異なるサムネイルを設定する
-
[解決済み] H.264ビデオとMPEG-4ビデオの違いは何ですか?[クローズド]
-
[解決済み] GitHub の wiki ページに YouTube の動画を埋め込むにはどうしたらいいですか?
-
[解決済み] .mp4 の正しい MIME タイプ
-
[解決済み】FFmpegで画像から動画を作成する方法は?
-
[解決済み] ffmpegでビデオファイルから良質のJPEG画像を取り出すにはどうしたらよいですか?