You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于使用FFmpeg实现定时切割长视频、拼接短视频并批量导出独立文件的技术问询

关于使用FFmpeg实现定时切割长视频、拼接短视频并批量导出独立文件的技术问询

当然可以用FFmpeg搞定这个需求!我给你拆解一下思路,再附上可直接用的脚本方案:

首先,咱们先把需求量化清楚:

  • 长视频总时长:42分35秒 = 2555秒
  • 每次截取长视频的片段长度:3分50秒 = 230秒
  • 需要给每个长视频片段后面拼接46秒的短视频,然后导出成单独的文件

实现方案(以Linux/macOS的Bash脚本为例)

这个方案会自动计算需要拆分的片段数量,逐个截取长视频片段,再和短视频拼接导出:

# 先定义你的视频文件路径
LONG_VIDEO="你的长视频文件.mp4"
SHORT_VIDEO="你的46秒短视频.mp4"
SEGMENT_DURATION=230  # 3分50秒对应的秒数

# 获取长视频总时长(取整数秒)
TOTAL_DURATION=$(ffmpeg -i "$LONG_VIDEO" -show_entries format=duration -v quiet -of csv=p=0 | cut -d. -f1)

# 计算需要拆分的片段数(向上取整,避免最后一段遗漏)
NUM_SEGMENTS=$(( (TOTAL_DURATION + SEGMENT_DURATION - 1) / SEGMENT_DURATION ))

# 循环处理每个片段
for ((i=0; i<NUM_SEGMENTS; i++)); do
    # 计算当前片段的起始时间
    START_TIME=$((i * SEGMENT_DURATION))
    
    # 从长视频中截取当前片段(无损拷贝,速度快)
    ffmpeg -ss "$START_TIME" -i "$LONG_VIDEO" -t "$SEGMENT_DURATION" -c copy temp_segment.mp4 -y
    
    # 生成拼接列表文件
    echo "file 'temp_segment.mp4'" > concat_list.txt
    echo "file '$SHORT_VIDEO'" >> concat_list.txt
    
    # 拼接片段和短视频,导出为独立文件
    ffmpeg -f concat -safe 0 -i concat_list.txt -c copy "output_$((i+1)).mp4" -y
done

# 清理临时文件
rm temp_segment.mp4 concat_list.txt

关键注意事项

  • 编码一致性:如果长视频和短视频的编码格式、分辨率、帧率不一致,直接用-c copy会失败,这时候去掉-c copy参数,让FFmpeg自动重新编码即可(速度会慢一些,但兼容性更好)
  • Windows系统适配:如果用Windows,把上面的脚本改成BAT脚本即可,变量和循环语法略有调整,比如set SEGMENT_DURATION=230,循环用for /l %%i in (0,1,%NUM_SEGMENTS%) do ...
  • 最后一段处理:脚本会自动处理最后一段不足3分50秒的长视频片段,同样会拼接短视频后导出

备注:内容来源于stack exchange,提问作者Jaga G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 08:28:05