On Mon, 27 Feb 2023 at 03:48, Dennis Mungai <dmng...@gmail.com> wrote:
> 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. > > > You can also add -max_interleave_delta 0 To the output options, like this to the command line above: 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 -max_interleave_delta 0 -f rtsp "rtsp://localhost:8000/stream" And report back on the results. _______________________________________________ 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".