我在来自ffmpeg的Janus流中遇到音频和视频之间的不同步

时间:2019-09-10 10:40:21

标签: ffmpeg webrtc vp8 janus-gateway

我正在使用Janus Gateway来流传输从视频文件中获取并由ffmpeg编码的视频。该项目的目标要复杂得多,但我尝试将其减少到最小,以帮助进行故障排除。

编码是通过以下方式完成的:

ffmpeg -re -thread_queue_size 4 -stream_loop -1 -i \
/root/syncTest.mkv -c:v libvpx -vf scale="-1:360" -minrate 400k \
-maxrate 600k -b:v 500k -an -deadline realtime -f rtp \ 
rtp://127.0.0.1:5004?pkt_size=1200 -vn -ar 48000 -ac 2 -c:a libopus \
 -f rtp rtp://127.0.0.1:5002?pkt_size=1200

我正在使用Streaming插件,流似乎没有任何技巧配置:

stream-1 :
{
  type = "rtp";
  id = "1";
  description = "stream-1";
  audio = "yes";
  audioport = "5002";
  audiopt = "111";
  audiortpmap = "opus/48000/2";
  video = "yes";
  videoport = "5004";
  videopt = "100";
  videortpmap = "VP8/90000";
  data = "no";
  secret = "adminpwd";
};

以下是指向我的流媒体插件和Janus配置的链接-我尝试使用nack队列长度和dtls超时参数播放一些内容,但无济于事,它们没有任何改变。

https://codeda.com/data/janus.jcfg.txt https://codeda.com/data/janus.plugin.streaming.jcfg.txt

结果视频(WebRTC播放器页面的屏幕截图)在这里:https://codeda.com/data/janusSyncIssue.mp4-如您所见,视频和音频之间存在相当大的不同步。

如我所见,问题在于视频流和音频流是分别发送的,或者不包含时间码,或者由于某种原因而被忽略。显然,对视频进行编码和对音频进行编码会花费不同的时间,而对视频来说则需要更多的时间,从而导致视频延迟。

我怀疑这个吗?如果是这样,我该如何解决?我想象有一些ffmpeg设置或Janus流插件设置。

是的,该服务器上的处理器几乎是免费的,有80-85%的空闲时间。肯定不是处理器问题。

0 个答案:

没有答案