できること
m2tsファイルの情報を取得する
ffmpeg -i video.m2ts
○解説
実行すると下図のような結果が表示されます
ファイルに含まれる情報(下記)
- 映像
- 音声
- 字幕
が表示されます
サブチャンネルや副音声の抽出に使います
ここをクリック
m2tsファイルをmp4に変換する
ffmpeg -i videoInput.m2ts -vcodec copy videoOutput.mp4
m2tsファイルを解像度を変えてmp4(1280×720)に変換する
CPU Ver
ffmpeg -dual_mono_mode main -i videoInput.m2ts -vf scale=1280:720 -vcodec copy -bsf:a aac_adtstoasc videoOutput.mp4
GPU Ver (h264_nvenc)
ffmpeg -dual_mono_mode main -i videoInput.m2ts -vf scale=1280:720 -vcodec h264_nvenc -bsf:a aac_adtstoasc videoOutput.mp4
mp4ファイルをビットレートを指定してmp4に変換する
ffmpeg -i "videoInput.mp4" -movflags +faststart -c:a aac -profile:a aac_low -ac 2 -ar 48000 -c:v libx264 -vf yadif=0:-1:1 -profile:v high -bf 2 -g 30 -coder 1 -b:v 1.5M -b:a 128k -pix_fmt yuv420p -threads 4 "videoOutput.mp4"
○解説
・ビットレート
1.5M
ここに変換したいビットレートを指定します
・スレッド数
threads 4
ここに変換処理に利用するスレッド数を指定します
ファンがうるさくなる場合はこの数値を下げるといいです
※補足
この変換をするとストリーム再生向きのファイルになります(おそらく)
仮にWebサーバを立ててスマホからファイルにアクセスする場合、読込み時間がかなり短縮されます
音ズレを直す
ffmpeg -ss 0.0 -i videoInput.mp4 -ss -1.1 -i videoInput.mp4 -map 0:a -map 1:v -vcodec copy -max_muxing_queue_size 2048 videoOutput.mp4
動画の一部を切り出す
0分0秒から30分0秒までを抽出する
ffmpeg -ss 00:00:00 -to 00:30:00 -i videoInput.mp4 -vcodec copy -acodec copy videoOutput.mp4
動画を結合する
○下準備
merge_list.txtを準備する(内容は下記)
file videoInput1.mp4 file videoInput2.mp4 file videoInput3.mp4
○コマンド実行
ffmpeg -f concat -i merge_list.txt -c copy videoOutput.mp4
※補足
- merge_list.txt
- videoInput1.mp4
- videoInput2.mp4
- videoInput3.mp4
は同じディレクトリにおきます
~~
字幕を抽出する
下記のツールが必要です
github.com
Code→Zipをダウンロードする
Caption2AssC.exeのあるディレクトリに移動した後下記を実行します
Caption2AssC.exe -format srt "videoInput.m2ts" "srtOutput"
副音声を抽出する
ファイル情報が↑のとき以下のコマンドで副音声で動画を抽出できます
ffmpeg -i videoInput.m2ts -vcodec copy -map 0:1 -acodec copy -map 0:3 videoOutput.mp4
以下は工事中
副音声を追加する
あああ
ffmpeg -i fig/aaaa%03d.jpg -pix_fmt rgb24 -f gif output.gif
ああ
ffmpeg -i videoInput.mp4 -ab 128k soundOutput.mp3
できないこと
m2tsファイルから番組名を取得する方法
あああ
ああ
あああ
ああ
あああ
ああ
あ