質問: 動画を分割する方法を知りたいです。 以前、AVI形式の動画ファイルを分勝する方法をffmpegで行っていました。 これを参考に、今回はffmpegを使い、h264形式の動画を分割したいです。 ``` ffmpeg -ss 00:00:00 -i test.h264 -to 00:00:10 -c:v ayuv thumbnail-000.h264 ``` などいろいろとオプション(-f, -c:v ayuvなどを変更)を試しましたが、空っぽの動画しかアウトプットされません。 (Output file is empty, nothing was encoded) 参考になりそうなサイトを探していますが、aviなど一般的なものは見つけることがありますが、h264では難しいようです。 そこで、質問ですが、 1. ffmpegを用いて、h264形式の動画を分割することは可能でしょうか? 2. もし可能であれば、どのようなコマンドを記入すればよいのでしょうか? ちなみに、h264の動画には音声は含まれていません。
回答: (質問コメントによれば自己解決済みとのことですが、情報提供まで) > > 1. ffmpegを用いて、h264形式の動画を分割することは可能でしょうか? > > > 可能です。FFmpegの基本的なデータ処理は、「入力動画をデコード(復号; 伸張)してから指定フォーマットでエンコード(符号化; 圧縮)」という流れをとります。入出力ファイルフォーマットに関わらず、内部的には動画・音声データを(ある程度)統一的に取り扱います。 > > 2. もし可能であれば、どのようなコマンドを記入すればよいのでしょうか? > > > 自己解決コメントにあるコマンドでは、読み込んだ入力ファイルをH.264動画デコードし、コンテンツ位置00:03:05から45秒長を抽出した後に、H.264動画エンコードしたものが出力ファイルへ書き出されます。 ``` ffmpeg -i "test.h264" -ss 00:03:05 -t 00:00:45.0 "video.h264" ``` 動画コーデックとしては再エンコード処理が行われますので、画品質とファイルサイズ(ビットレート)が大きく変わってしまう可能性があります。 FFmpegではコマンドラインオプション指定順序が意味を持つことにも注意ください。例えば`-ss`オプションを入力ファイル指定`-i`の前後いずれに書くかで、動作が微妙に変わってきます。( ffmpeg Documentation, 5.4 Main options 参照)