Audio FFmpeg-仅延迟音频链接dshow输入的视频流

Audio FFmpeg-仅延迟音频链接dshow输入的视频流,audio,video,ffmpeg,synchronization,delay,Audio,Video,Ffmpeg,Synchronization,Delay,我在尝试以可接受的误差幅度同步音频和视频时遇到了一个小问题。这是我的命令: ffmpeg -y -thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -video_size 3440x1440 -rtbufsize 2147.48M ^ -framerate 100 -pixel_format nv12 -i video="Video (00 Pro Capture HDMI 4K+)":audio="SPDIF/

我在尝试以可接受的误差幅度同步音频和视频时遇到了一个小问题。这是我的命令:

ffmpeg -y -thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -video_size 3440x1440 -rtbufsize 2147.48M ^
-framerate 100 -pixel_format nv12 -i video="Video (00 Pro Capture HDMI 4K+)":audio="SPDIF/ADAT (1+2) (RME Fireface UC)" ^
-map 0:0,0:1 -map 0:1 -flags +cgop -force_key_frames expr:gte(t,n_forced*2) -c:v h264_nvenc -preset: llhp -pix_fmt nv12 ^
-b:v 250M -minrate 250M -maxrate 250M -bufsize 250M -c:a aac -ar 44100 -b:a 384k -ac 2 -r 100 -af "aresample=async=250" ^
-vsync 1 -max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 ^
C:\Users\djcim\Videos\PC\PC\PC%02d.ts
我的问题是视频的输入比音频稍早,我可以使用-itscoffset,但是我必须调用视频和音频作为单独的输入,因为-itscoffset会同时偏移音频和视频。虽然这似乎是一个显而易见的解决方案,但如果音频未与视频一起调用,则会导致音频同步不一致。基本上,如果不同时调用音频和视频,则视频现在可以向前或向后,留有2-3帧的边距。当我同时给他们打电话时,每次视频总是比音频提前2帧。我只需要一种方法来延迟视频流,而不延迟音频,同时保持音频和视频从一开始就链接。我试过这个,但运气不好:

ffmpeg -y -thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -video_size 3440x1440 -rtbufsize 2147.48M ^
-framerate 200 -pixel_format nv12 -i video="Video (00 Pro Capture HDMI 4K+)":audio="SPDIF/ADAT (1+2) (RME Fireface UC)" ^
-flags +cgop -force_key_frames expr:gte(t,n_forced*2) -c:v h264_nvenc -preset: llhp -pix_fmt nv12 -b:v 250M ^
-minrate 250M -maxrate 250M -bufsize 250M -c:a aac -ar 44100 -b:a 384k -ac 2 -r 100 ^
-filter_complex "[0:v] setpts=PTS-STARTPTS+.032/TB [v]; [0:a] asetpts=PTS-STARTPTS, aresample=async=250 [a]" -map [v] ^
-map [a] -vsync 1 -max_muxing_queue_size 9999 -f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 ^
C:\Users\djcim\Videos\PC\PC\PC%02d.ts
就像-视频和音频都被延迟了。您可以使用adelay单独延迟音频,但似乎没有等效的视频延迟


任何帮助或建议都将不胜感激

正如Gyan在评论中所说,atrim工作了。虽然它没有延迟视频,但它仍然通过删除部分音频流来排列所有内容

ffmpeg - y -thread_queue_size 9999 -indexmem 9999 -guess_layout_max 0 -f dshow -video_size 3440x1440 -rtbufsize 2147.48M ^
-framerate 200 -pixel_format nv12 -i video="Video (00 Pro Capture HDMI 4K+)":audio="SPDIF/ADAT (1+2) (RME Fireface UC)" ^
-map 0:0,0:1 -map 0:1 -flags +cgop -force_key_frames expr:gte(t,n_forced*2) -c:v h264_nvenc -preset: llhp -pix_fmt nv12 ^
-b:v 250M -minrate 250M -maxrate 250M -bufsize 250M -c:a aac -ar 44100 -b:a 384k -ac 2 -r 100 ^
-af "atrim=0.038, asetpts=PTS-STARTPTS, aresample=async=250" -vsync 1 -ss 00:00:01.096 -max_muxing_queue_size 9999 ^
-f segment -segment_time 600 -segment_wrap 9 -reset_timestamps 1 C:\Users\djcim\Videos\PC\PC\PC%02d.ts

将音频时间修剪2个视频帧,然后调整TS:atrim=0.32,asetpts=PTS startpts这似乎起作用了,感谢您一直来电。我一直在问的问题实际上只是关于我的巨型怪物命令的一部分。我有最后一个问题,我将创建一个帖子,内容是我希望得到任何反馈。我想你最终还是会看到的,再次谢谢。