如何用FFmpeg调整同步4格游戏视频的起始时间与音频源
修改FFmpeg命令实现视频提前15秒启动并指定音频轨道
以下是满足需求的修改后FFmpeg命令:
-i v_nimble_guardian.mkv -i macko_nimble_guardian.mkv -i ghost_nimble_guardian_subtle_arrow_1.mp4 -i nano_nimble_guardian.mkv -filter_complex " nullsrc=size=1920x1080 [base]; [0:v] trim=start_pts=34117,setpts=PTS-STARTPTS, scale=960x540 [upperleft]; [1:v] trim=start_pts=35483,setpts=PTS-STARTPTS, scale=960x540 [upperright]; [2:v] trim=start_pts=780117,setpts=PTS-STARTPTS, scale=960x540 [lowerleft]; [3:v] trim=start_pts=23100,setpts=PTS-STARTPTS, scale=960x540 [lowerright]; [base][upperleft] overlay=shortest=1 [tmp1]; [tmp1][upperright] overlay=shortest=1:x=960 [tmp2]; [tmp2][lowerleft] overlay=shortest=1:y=540 [tmp3]; [tmp3][lowerright] overlay=shortest=1:x=960:y=540 " -map 1:a -c:v libx264 output.mkv
修改说明
从同步帧前15秒启动:
给每个视频的trim=start_pts数值减去15秒对应的PTS增量。这里默认视频时基是毫秒级(1/1000),所以直接减15000。如果你的视频时基不同,先运行ffmpeg -i 你的输入视频 -show_entries stream=time_base -v quiet -of csv=p=0查看时基,再用15 / 时基算出要减去的PTS值替换15000。指定第二个输入的音频:
命令末尾添加-map 1:a,让输出文件直接用第二个输入视频(索引为1)的音频轨道,替代FFmpeg默认的音频选择逻辑。
内容的提问来源于stack exchange,提问作者PirateApp
相关产品推荐
相关产品推荐

