On Sun, 10 Jul 2022 at 10:28, Ben Parham <behfart...@gmail.com> wrote:
> Hi Dennis, > Now I am streaming with two cameras but I have a small problem, the audio > stream is not synced with the video stream, and there is a small delay of > around 0.2 seconds. > How can I fix it? I would appreciate your help. > Regards, > Ben. > This somehow slipped through my email filters, seeing this now. Try this variant and report back: ffmpeg -y -fps_mode passthrough -hwaccel cuda -hwaccel_output_format cuda -extra_hw_frames 3 rtsp_transport tcp -i "rtsp://admin:Pass1@192.168.1.1" -flags +genpts -vf scale_cuda=1920:1080 -vcodec hevc_nvenc -delay 0 -preset p2 -bf:v 0 -tune hq -rc vbr -vb 700k -maxrate 800k -minrate 200k -bufsize 800k -g 25 -acodec copy -strict -2 -flags +global_header -f rtsp "rtsp://localhost:8000/stream" See the changes I made: 1. Completely disabled B-frames. B-frames add to encoder latency. 2. See the new option -fps_mode, which replaces the now-deprecated -vsync parameter. 3. I also removed the +low_delay flag, as its' known to be very broken on any input with B-frames. 4. To nvenc, I added the -delay parameter, set to 0. The latency is propagated by the “delay” parameter (internally referred to as async_depth) passed to FFmpeg for nvenc. The code in FFmpeg’s nvenc.c waits until this number of extra frames have been buffered <https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/nvenc.c#L981> before emitting any frames and is intended to support parallel and 1:N encoding scenarios. The assigned default value is INT_MAX which later gets reduced down to the number of NVENC surfaces initialized minus one, which itself has an initial value of 4 when unset/by default. This can be overriden by setting -delay:v 0 to fix the output latency. Retest and report back. _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".