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

标签 python video ffmpeg mp4

这个问题在这里已经有了答案:





FFmpeg splitting large files

(1 个回答)


3年前关闭。




很多天后,我想将多个 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
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 是每个片段的长度。

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

关于python - 如何使用 ffmpeg 分割多个 mp4 视频?当前解决方案太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51874544/

相关文章:

memory - FFMPEG 吃掉所有内存

Python ffmpeg 显示输出

video - 使用 FFMPEG 创建视频缩略图时无法使用比例大小

python - 如何创建具有可变数字的 unicode 字符?

python - 什么是属性对象?

python - 使用 json 序列化查询集的结果引发错误 :

python - 如何在 python 中使用 youtube_dl 和 ffmpeg 剪掉前 5 秒

python - 动态更新的实例类方法在被另一个类方法调用时抛出错误

javascript - 在html5中一个接一个地播放视频

javascript - 事件处理程序中的 setTimeout