mp4 を結合する

ffmpegを使うとmp4に限らずwavでもwmvでも結合できます。

ffmpegによるmp4結合の基本

結合には3種類あるようですが(How to concatenate two MP4 files using FFmpeg?)、”concat demuxer”を使うのが良さそうです。

mp4の場合はリスト・ファイル hoge.txtを作ります。 中身はこんな感じで。

file 'hoge1.mp4'
file 'hoge2.mp4'
file 'hoge3.mp4'

このファイルをffmpegに喰わせれば結合されます。

ffmpeg -f concat -safe 0 -i hoge.txt -c copy hoge-all.mp4

リスト・ファイルの作り方

上記のリスト・ファイルはshellなら次のようなコマンドで生成できます。 何度もリストを作る時はこういうスクリプトを使う方が楽でしょうね。

Concatenating media files (ffmpeg wiki)

for i in hoge*.mp4 ; do echo "file '$i'" >> hoge.txt; done  

mp4連結のスクリプト

何度もリストから変換する場合もスクリプトが楽です。

shellなら以下のような感じでリスト(.txt)からファイル名を適当に作って変換できます。

hoge.txtならhoge.mp4のようなファイルを生成します。

#!/bin/sh

while [ $# -ne 0 ];
do 
    case "$1" in
        *.txt)
            if [ -s "$1" ]; then
            files="$files $1"
            fi ;;
    esac
    shift
done

for i in $files
do
    filebase=`basename $i|sed 's/\(.*\)\..*/\1/'`
    mp4file=${filebase}.mp4
    ffmpeg -f concat -safe 0 -i $i -c copy ${mp4file}
done

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください