我正在使用 vlc 为两个摄像头重新传输 rtsp 流。第二个摄像头没有音频,但对于第一个摄像头来说,它工作正常(有音频) 流启动失败 9 次,错误“ core decoder error: cannot continue streaming due to errors
“。但是,如果流启动,它会正常工作,直到重新启动。但是我在摄像头 1 上收到一些错误(当流正确启动时):
core mux warning: late buffer for mux input (145003)
有时(很少)我会收到这些错误:
mux_ts mux 警告:数据包带有太奇怪的 dts (dts=-6272,old=0,pcr=0)
我在 CentOS7 上使用来自 nux-dextop repo 的 VLC 2.2.4:
VLC media player 2.2.4 Weatherwax (revision 2.2.3-37-g888b7e89)
它安装在没有桌面的虚拟机上,可能没有任何音频支持(没有虚拟音频硬件)。
第一个摄像机的 vlc 启动脚本:
#!/bin/bash
URL="rtsp://192.168.40.201:554/axis-media/media.amp"
#--rtsp-frame-buffer-size=200000 \
sudo -u vlc cvlc -v \
--loop --http-reconnect --http-continuous -I dummy $URL \
--logfile=/var/log/bird-cam1.log \
--sout '#transcode{}'\
':duplicate{dst=std{access=livehttp{seglen=3,delsegs=true,numsegs=5,index=/var/www/html/live/cam1/mystream.m3u8,index-url=http://10.20.30.40/live/cam1/mystream-########.ts},mux=ts{use-key-frames},'\
'dst=/var/www/html/live/cam1/mystream-########.ts},'\
'dst=std{access=http,mux=ts,dst=:8081/video.mp4}}'
vlc输出
VLC media player 2.2.4 Weatherwax (revision 2.2.3-37-g888b7e89)
[0000000000b4f348] core interface error: no suitable interface module
[0000000000a50118] core libvlc error: interface "globalhotkeys,none" initialization failed
[0000000000b4f348] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0000000000b4f348] core interface error: no suitable interface module
[0000000000a50118] core libvlc error: interface "dbus,none" initialization failed
[0000000000b4f348] dummy interface: using the dummy interface module...
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (100000). 75129 bytes of trailing data will be dropped!
[00007fb95c0009b8] core input error: ES_OUT_RESET_PCR called
[00007fb960005148] mux_ts mux warning: packet with too strange dts (dts=-6457,old=0,pcr=0)
[00007fb9604d1228] mux_ts mux warning: packet with too strange dts (dts=-6457,old=0,pcr=0)
[00007fb95c0009b8] core input error: ES_OUT_RESET_PCR called
[00007fb96051d348] core decoder error: cannot continue streaming due to errors
知道为什么流每次都无法启动吗?两个摄像头都流 RTSP。编解码器 h264 AVC,第一个摄像头的音频是 mp4a
更新:
确认音频是导致问题的原因。停止音频流后,vlc 工作正常。音频编解码器是 AAC。它设置为 32kHz 采样/32 kbit/s。现在是 48kHz 采样/64kbit/s - 仍然是同样的问题。
更新:
我尝试了相机中不同的 AAC 设置 - 16kHz - 结果相同。将音频设置为 G.711 导致“不支持的编码”错误,但即使音频无法正常工作,流仍可以开始。