分段时音频慢慢变化



我在录制时使用ffmpeg分割视频的能力,这样我就可以不断录制而无需填充硬盘驱动器。

它的运作效果非常好,可以期待文件段时视频中的音频删除。该视频似乎并不中断,但是当我以后加入片段时,我实际上可以听到音频中的一点点跳跃。有人会认为FFMPEG会在分割过程中将数据包存储在队列中,因此没有任何丢失,但似乎并非如此……我可以强迫它这样做吗?

这是我当前的块:

ffmpeg -y -thread_queue_size 5096 -f dshow -video_size 3440x1440 -rtbufsize 2147.48M -framerate 100 -pixel_format nv12 ^
-itsoffset 00:00:00.012 -i video="Video (00 Pro Capture HDMI 4K+)" -thread_queue_size 5096 -guess_layout_max 0 -f dshow ^
-rtbufsize 2147.48M -i audio="SPDIF/ADAT (1+2) (RME Fireface UC)" -map 0:0,1:0 -map 1:0 -c:v h264_nvenc -preset: llhp ^
-pix_fmt nv12 -b:v 250M -minrate 250M -maxrate 250M -bufsize 250M -b:a 384k -ac 2 -r 100 -vsync 1 ^
-max_muxing_queue_size 5096 -segment_time 600 -segment_wrap 9 -f segment C:UsersdjcimVideosPCPCPC%02d.mp4 

我正在延迟视频流,因为在大门上方有点领先。

ps:Aresample或Async似乎没有效果或至少没有理想的作用。

使用-Reset_timestamps与编码.ts而不是.mp4结合使用。-Reset_timestamps在编码.mp4时似乎不起作用,为什么不确定,也许是一个错误?

我之所以说,主要是因为在第一个段之后,音频仍然在框架周围漂移,但不是指数级。我发现可以接受的一个框架可以通过一个框架进行音频。尽管我现在应该提到时,当我试图将剪辑限制在一起时,但我并非总是有音频漂移问题,而是有时。使用Aresample = Async = 250修复了Concat之后的漂移,但是您可以听到音频伸展的声音。不能指望一切都能完美。

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:UsersdjcimVideosPCPCPC%02d.ts

最新更新