Python 如何使用ffmpeg分割多个mp4视频?当前的解决方案太慢
我想把多个mp4视频分割成大小为30-40秒的小块,在我找到一个使用ffmpeg的答案后,我发现了一个答案Python 如何使用ffmpeg分割多个mp4视频?当前的解决方案太慢,python,video,ffmpeg,mp4,Python,Video,Ffmpeg,Mp4,我想把多个mp4视频分割成大小为30-40秒的小块,在我找到一个使用ffmpeg的答案后,我发现了一个答案 ffmpeg -i /home/msz/Downloads/CartoonVideos/1.mp4 -ss 180 -t 30 /home/msz/Downloads/NewCartoonVideos/1-7.mp4 但这是单行命令,花费太多,我每次都必须更改。有人能告诉我其他方法或在脚本/循环中更改此代码吗?嗯 #!/usr/bin/bash N_FRAGS=$1 SEG_LEN=$2
ffmpeg -i /home/msz/Downloads/CartoonVideos/1.mp4 -ss 180 -t 30 /home/msz/Downloads/NewCartoonVideos/1-7.mp4
但这是单行命令,花费太多,我每次都必须更改。有人能告诉我其他方法或在脚本/循环中更改此代码吗?嗯
#!/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
其中10是每个文件的片段数量,30是每个片段的长度
这可能需要一些调试(还没有测试过),而且可能更复杂,比如自动检测每个文件的长度(以及可用片段的数量),根据需要在输出文件名中添加带零的焊盘段编号,等等。请参阅链接线程答案中的第一个命令。
./massive_split.sh 10 30 /home/msz/Downloads/CartoonVideos/*.mp4