如何使用ffmpeg分割多个mp4视频?当前的解决方案太慢了

时间:2018-08-16 10:10:01

标签: python video ffmpeg mp4

我想在很多天后找到一个使用ffmpeg的答案,即

ffmpeg -i /home/msz/Downloads/CartoonVideos/1.mp4 -ss 180 -t 30 /home/msz/Downloads/NewCartoonVideos/1-7.mp4

但是这是单行命令,它占用太多时间,每次都必须更改它。有人可以告诉我其他方法还是可以在脚本/循环中更改此代码?

1 个答案:

答案 0 :(得分:0)

嗯,

#!/usr/bin/bash
N_FRAGS=$1
SEG_LEN=$2
shift 2
for $FILE in "$@" ; do
    SS=0
    for (( segment = 1; segment <= N_FRAGS; ++segment )) ; do
        OUTPUT=$(dirname $FILE)/(basename $FILE .mp4)-$segment.mp4
        ffmpeg -i "$FILE" -ss $SS -t "$SEG_LEN $OUTPUT"
        SS=$((SS + SEG_LEN))
    done
done

将其保存在massive_split.sh下,并命名为

./massive_split.sh 10 30 /home/msz/Downloads/CartoonVideos/*.mp4

每个文件中的碎片数量为10,每个碎片的长度为30。

这可能需要一些调试(尚未测试),并且可能更复杂,例如自动检测每个文件的长度(因此,可用的碎片数量),将输出文件名中的零填充为等等。