AVCHDの動画をffmpegで編集
sonyのビデオカメラで撮ったカンファレンスの動画セッションごとに切り出す作業を行ったのでメモ書き
iMoveでやろうとしたら固まってどうにもならなかったのでffmpegでやることにした
AVCHD
詳しい説明はwikiなどで確認して欲しいですがwindowsだとフォルダで表示されるけどmacOSからGUIで確認するとこんなアイコンになっていてちょっとめんどくさい
右クリックで `パッケージの内容を表示` で中を確認できる
$ ls -la
drwx------@ 6 username 0000000000 192 5 13 09:44 AVCHD
CUIで確認するとディレクトリになってるので簡単に確認できるので
長時間撮影していた動画を確認すると4.0GB単位で分割されていて一度連結する必要がある
あとサイズが大きい
$ ls -lah ./AVCHD/BDMV/STREAM
total 199493384
-rwx------ 1 username 0000000000 4.0G 5 11 09:14 00000.MTS
-rwx------ 1 username 0000000000 4.0G 5 11 09:37 00001.MTS
-rwx------ 1 username 0000000000 4.0G 5 11 10:00 00002.MTS
-rwx------ 1 username 0000000000 4.0G 5 11 10:23 00003.MTS
-rwx------ 1 username 0000000000 4.0G 5 11 10:46 00004.MTS
-rwx------ 1 username 0000000000 4.0G 5 11 11:09 00005.MTS
環境
macOS 14.4.1
ffmpeg version 7.0
セッションごとに切り出す
作業は `AVCHD` と同じディレクトリで作業を行う
やることはこの2つ
動画を全て連結
セッションごとに切り出す
動画を連結する
動画一覧をmylist.txtに書き込んでffmpegで連結する
時間かかるけどディスク容量小さくするためにファイル形式を変更しておく
$ for file in `ls ./AVCHD/BDMV/STREAM/`; do; echo file AVCHD/BDMV/STREAM/$file >> mylist.txt; done
$ ffmpeg -f concat -i mylist.txt all.mp4
セッションごとに分割する
面倒だけど動画を確認してセッションの開始と終わりの時間を確認して
スプレッドシートに書き込んでいって切り出し用のコマンドを作成して実行していく
D2の列はこんな感じにしてある
="ffmpeg -ss "&TEXT(B2,"[s]")&" -t "&TEXT(C2,"[s]") - TEXT(B2,"[s]")&" -i sotetsu_all.mp4 -c copy session_"&TEXT(A2,"00")&".mp4"
最後に
ffmpegを使ってみたかったというのと次やることがあればCLIで簡単にやれるようにするためにやってみたけどセッションの開始と終わりの時間を取得するのが一番めんどくさかった
ffmpegは形式の変換が時間かかるくらいで切り出しは数秒で終わるのでよかった
ノイズとかの調整は時間がある時に試してみたい
fortee というカンファレンス支援ツールには分割してくれる機能があるらしい、いつか使ってみたい