使用ffmpeg -to参数处理多输入流时视频时长不符合预期的问题求助
ffmpeg -to参数处理多输入流时视频时长不符合预期的问题求助
我正在修改一个基于yt-dlp(原youtube-dl)的脚本,想要下载视频的指定时间段——用-to参数指定结束时间戳,而不是用-t指定时长,但遇到了问题。
下面是我用到的ffmpeg命令:
ffmpeg -ss 00:08:50 -i 'https://stream_url_video' -to 00:12:30 -ss 00:08:50 -i 'https://stream_url_audio' -to 00:12:30 -ss 5 -map 0:v -map 1:a -c:v copy -c:a copy 'output.mp4'
现在遇到的问题很奇怪:音频能精准在指定的结束时间戳00:12:30停止,但视频却会一直播放,最终总时长达到了00:12:30(相当于从视频开头算起播放到12分30秒,而不是从我的起始点00:08:50到00:12:30的这段时长)。
有没有办法解决这个问题?
附上我使用的完整脚本:
#!/bin/bash #Arguments: URL, Starting Timestamp -5 seconds, Ending Timestamp, video file name set -x; readarray -t urls <<< "$(yt-dlp -f bestvideo[ext=mp4][vcodec^=avc1]+140 --youtube-skip-dash-manifest -g "$1")" ffmpeg -ss $2 -i "${urls[0]}" -to $3 -ss $2 -i "${urls[1]}" -to $3 -ss 5 -map 0:v -map 1:a -c:v copy -c:a copy "${4}"
备注:内容来源于stack exchange,提问作者Tom Huntington




