Concatenate Movies taken by Drive Recorder DRV-630
例えば 2024/07/14 の動画をつなげる場合、
を参考に、
code:sh
for file in $(ls -1 FILE240714-*.MP4); do echo file \'$file\'; done > inputs.txt
ffmpeg -f concat -safe 0 -i inputs.txt -c copy 240714.mp4
とすれば良いかと思ったが、M2 Macbook Air でこれは error になったので、以下のようにした。
code:sh
ffmpeg -f concat -safe 0 -i inputs.txt -c:v copy -c:a aac 240714.mp4
つなげると、
code:sh
DATE=240714 && for file in $(ls -1 FILE${DATE}-*.MP4); do echo file \'$file\'; done > inputs.txt && ffmpeg -f concat -safe 0 -i inputs.txt -c:v copy -c:a aac $DATE.mp4
ちなみに出ていたerror は以下のようなもの
mp4 @ 0x12d60f300 Could not find tag for codec adpcm_ima_wav in stream #1, codec not currently supported in container Conversion failed!`
で、音声の codec が対応していないようなので変換している (ChatGPT に教えてもらった)。
つなげた動画を10倍速にする
で提案されている。10倍の場合は以下のようにすれば映像と音声が10倍速になる。
code:sh
ffmpeg -i 240714.mp4 -filter_complex "0:vsetpts=0.1*PTSv;0:aatempo=10a" -map "v" -map "a" 240714-10x.mp4 つなげて10倍速にする one liner は、
code:sh
DATE=240714 && for file in $(ls -1 FILE${DATE}-*.MP4); do echo file \'$file\'; done > inputs.txt && ffmpeg -f concat -safe 0 -i inputs.txt -c:v copy -c:a aac $DATE.mp4 && ffmpeg -i $DATE.mp4 -filter_complex "0:vsetpts=0.1*PTSv;0:aatempo=10a" -map "v" -map "a" ${DATE}-10x.mp4 処理時間は等倍で30分の動画が10分くらいだった (MacBookAir M2)。