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

How to split multiple mp4 videos using ffmpeg? current solution is too slow

我想在 30-40 秒后将多个 mp4 视频分成更小的块,我找到了一个使用 ffmpeg 的答案,即

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

但这是单行命令,它占用了太多时间,我必须每隔 time.Can 更改一次,有人告诉我其他方法或更改 script/loop 中的代码吗?

嗯,

#!/usr/bin/bash
N_FRAGS=
SEG_LEN=
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 是每个片段的长度。

这可能需要一些调试(尚未测试),并且可以更复杂,例如自动检测每个文件的长度(以及因此可用的片段数量),在输出文件中用零填充段号根据需要命名等