2

我正在使用 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% 是免费的。肯定不是处理器问题。

4

0 回答 0