基于rtsp流的ffmpeg延迟

基于rtsp流的ffmpeg延迟,ffmpeg,rtsp,ip-camera,Ffmpeg,Rtsp,Ip Camera,我有命令 ffmpeg -threads 0 -i rtsp://user:pass@10.10.10.1 -threads 0 -i rtsp://user:pass@10.10.10.2 -map 0:1 -map 1:1 -filter_complex amix=inputs=2:duration=first:dropout_transition=3 -muxdelay 0 -ar 22050 -vn -f flv rtmp://10.10.10.3:1935/live/stream1

我有命令

ffmpeg -threads 0 -i rtsp://user:pass@10.10.10.1 -threads 0 -i rtsp://user:pass@10.10.10.2 -map 0:1 -map 1:1  -filter_complex amix=inputs=2:duration=first:dropout_transition=3 -muxdelay 0 -ar 22050 -vn -f flv rtmp://10.10.10.3:1935/live/stream1 -map 0:0 -map 0:1 -muxdelay 0 -ar 22050 -f flv rtmp://10.10.10.3:1935/live/stream4 -map 1:0 -map 1:1 -muxdelay 0 -ar 22050 -f flv rtmp://10.10.10.3:1935/live/stream5
它有三个功能: 1) 从两个ip摄像头(10.10.10.1和10.10.10.2)获取音频,并将其多路复用到一个mp3流(stream1)中。 2) 从cam 10.10.10.1获取音频和视频并将其流式传输到rtmp://10.10.10.3:1935/live/stream4 3) 从cam 10.10.10.2获取音频和视频并将其流式传输至rtmp://10.10.10.3:1935/live/stream5

问题:延误: 1) 来自现实的延迟:我在Cam1中微笑,我在4-5秒内在Stream4上看到我的微笑。 2) 不同摄像机上的不同延迟。两个摄像头都看着我,我说“你好”。第一个摄像头显示我的“Hello”,然后在4-5秒内第二个摄像头显示“Hello”,在2-3秒内我在Stream1上听到“Hello”

最重要和最令人不安的问题是第二个问题。请帮忙解决它。我希望它们是同步的——包括摄像机和音频流

先谢谢你

P.S. Full output

[root@minjust ~]# ffmpeg -threads 0 -i rtsp://user:pass@172.22.5.201 -threads 0 -i rtsp://user:pass@172.22.5.202 -map 0:1 -map 1:1  -filter_complex amix=inputs=2:duration=first:dropout_transition=3 -muxdelay 0 -ar 22050 -vn -f flv rtmp://172.22.45.38:1935/live/stream1 -map 0:0 -map 0:1 -muxdelay 0 -ar 22050 -f flv rtmp://172.22.45.38:1935/live/stream4 -map 1:0 -map 1:1 -muxdelay 0 -ar 22050 -f flv rtmp://172.22.45.38:1935/live/stream5
ffmpeg version N-76031-g9099079 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-16)
  configuration:
  libavutil      55.  4.100 / 55.  4.100
  libavcodec     57.  6.100 / 57.  6.100
  libavformat    57.  4.100 / 57.  4.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 11.100 /  6. 11.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.100 /  2.  0.100
Input #0, rtsp, from 'rtsp://user:pass@172.22.5.201':
  Metadata:
    title           : Media Presentation
  Duration: N/A, start: 0.073000, bitrate: N/A
    Stream #0:0: Video: h264 (Main), yuv420p(tv, bt709), 1280x720, 10 fps, 25 tbr, 90k tbn, 20 tbc
    Stream #0:1: Audio: mp2, 16000 Hz, mono, s16p, 32 kb/s
Input #1, rtsp, from 'rtsp://user:pass@172.22.5.202':
  Metadata:
    title           : Media Presentation
  Duration: N/A, start: 0.064000, bitrate: N/A
    Stream #1:0: Video: h264 (Baseline), yuv420p, 704x576, 12 fps, 25 tbr, 90k tbn, 24 tbc
    Stream #1:1: Audio: adpcm_g726, 8000 Hz, mono, s16, 16 kb/s
    Stream #1:2: Data: none
Output #0, flv, to 'rtmp://172.22.45.38:1935/live/stream1':
  Metadata:
    title           : Media Presentation
    encoder         : Lavf57.4.100
    Stream #0:0: Audio: adpcm_swf ([1][0][0][0] / 0x0001), 22050 Hz, mono, s16, 88 kb/s (default)
    Metadata:
      encoder         : Lavc57.6.100 adpcm_swf
Output #1, flv, to 'rtmp://172.22.45.38:1935/live/stream4':
  Metadata:
    title           : Media Presentation
    encoder         : Lavf57.4.100
    Stream #1:0: Video: flv1 (flv) ([2][0][0][0] / 0x0002), yuv420p, 1280x720, q=2-31, 200 kb/s, 10 fps, 1k tbn, 10 tbc
    Metadata:
      encoder         : Lavc57.6.100 flv
    Stream #1:1: Audio: adpcm_swf ([1][0][0][0] / 0x0001), 22050 Hz, mono, s16, 88 kb/s
    Metadata:
      encoder         : Lavc57.6.100 adpcm_swf
Output #2, flv, to 'rtmp://172.22.45.38:1935/live/stream5':
  Metadata:
    title           : Media Presentation
    encoder         : Lavf57.4.100
    Stream #2:0: Video: flv1 (flv) ([2][0][0][0] / 0x0002), yuv420p, 704x576, q=2-31, 200 kb/s, 12 fps, 1k tbn, 12 tbc
    Metadata:
      encoder         : Lavc57.6.100 flv
    Stream #2:1: Audio: adpcm_swf ([1][0][0][0] / 0x0001), 22050 Hz, mono, s16, 88 kb/s
    Metadata:
      encoder         : Lavc57.6.100 adpcm_swf
Stream mapping:
  Stream #0:1 (mp2) -> amix:input0 (graph 0)
  Stream #1:1 (g726) -> amix:input1 (graph 0)
  amix (graph 0) -> Stream #0:0 (adpcm_swf)
  Stream #0:0 -> #1:0 (h264 (native) -> flv1 (flv))
  Stream #0:1 -> #1:1 (mp2 (native) -> adpcm_swf (native))
  Stream #1:0 -> #2:0 (h264 (native) -> flv1 (flv))
  Stream #1:1 -> #2:1 (adpcm_g726 (g726) -> adpcm_swf (native))
Press [q] to stop, [?] for help
[rtsp @ 0x35af820] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[rtsp @ 0x34e1b60] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
Past duration 0.930214 too large
Past duration 0.647987 too large
Past duration 0.730217 too large
...

全控制台输出?无论如何,我的第一个猜测是它被一个需要大量“缓冲”的视频编解码器转码(描述了流行的libx264 zerolatency)是的,我的猜测是flv编解码器引入了一些延迟,FWIWthanx。我尝试使用x264-情况更好。但我仍然有1秒的摄像头之间的差异和2-3秒的混合音频延迟。你推荐什么格式?总的来说,这有可能吗?我需要同时从2-3个ip摄像机中获取音频-视频流,再加上来自所有摄像机的混合音频流(也是同时的)。你能为此推荐一个命令或给出一些建议吗?不幸的是,我所知道的关于延迟的所有信息都在那个流媒体指南链接中,对不起!全控制台输出?无论如何,我的第一个猜测是它被一个需要大量“缓冲”的视频编解码器转码(描述了流行的libx264 zerolatency)是的,我的猜测是flv编解码器引入了一些延迟,FWIWthanx。我尝试使用x264-情况更好。但我仍然有1秒的摄像头之间的差异和2-3秒的混合音频延迟。你推荐什么格式?总的来说,这有可能吗?我需要同时从2-3个ip摄像机中获取音频-视频流,再加上来自所有摄像机的混合音频流(也是同时的)。你能为此推荐一个命令或给出一些建议吗?不幸的是,我所知道的关于延迟的所有信息都在那个流媒体指南链接中,对不起!