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

Android平台FFmpeg双视频并排拼接时长问题求助

解决FFmpeg双视频并排拼接时长取较短值的问题

我懂你现在的困扰——两个时长不一的视频并排拼接后,输出总是跟着长视频的时长走,而你想要对齐较短那个的时长。其实这个问题很好解决,只需要在你的滤镜链里加个小参数就行。

问题根源

FFmpeg默认会以输入流中最长的时长作为输出时长,所以35秒的视频会把整个输出拉到它的长度。我们需要明确告诉FFmpeg:当任意一个输入视频结束时,就停止输出。

修改后的命令片段

只需要在hstack滤镜中添加shortest=1参数,让它自动以较短的输入视频时长为准:

"-i","firsth.mp4","-i","second.mp4","-filter_complex","[0:v]scale=480:640,setsar=1[l];[1:v]scale=480:640,setsar=1[r];[l][r]hstack=shortest=1","-c:v","libx264","-crf","23","output.mp4"

补充说明

  • shortest=1是hstack的可选参数,作用是当任意一个输入视频流结束时,立即终止整个滤镜链的输出,这样输出时长就会自动匹配两个输入中较短的那个(也就是你的20秒)。
  • 如果你的视频包含音频,别忘了同步处理音频部分——比如对音频使用amix滤镜并同样加上shortest=1参数,避免出现音频时长和视频不匹配的情况。

内容的提问来源于stack exchange,提问作者Nouh LC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:31:32