音频到gstreamer RTMP流的复用可以杀死视频和音频

时间:2015-03-11 07:05:18

标签: ffmpeg gstreamer wowza

我需要一些天才的帮助 - 我正试图为即将到来的婚礼设置一个直播...而且我几乎都在工作 - 音频似乎是问题所在。

这是我的设置

  • Raspberry Pi Model B +
  • 罗技C920(我正在使用板载h264编码)
  • 相机(C920)麦克风
  • USB wifi到iPhone 4G连接
  • gstreamer1.0
  • Amazon EC2 Wowza RTMP服务器

我已经完成了所有设置,但是只要我在音频中复用,流就不会被任何播放器播放。

什么有效:   - 我的gstreamer管道没有音频复用   - Wowza收到一致的流,没有失败   - 各种Flash播放器/ iOS / Android和VLC都播放视频

什么不是:   - 在多路复用器中启用音频(使用下面的管道)   - 但是gstreamer没有抱怨   - 但是Wowza收到一致的流,没有失败   - 各种Flash播放器无法同时播放音频和视频。有些只是显示第一个视频帧   - VLC播放1个视频帧,大约100ms的音频,然后停止

理想情况下,我也喜欢存储在SD卡上的多路复用音频/视频FLV,以防网络出现故障 - 但是,如果发生了这样的问题。需要牺牲才能使它发挥作用,就这样吧。

这是我当前的FAILING管道 - 我认为其中有一些非常愚蠢的东西,因为我几乎不了解gstreamer ....第一帧加载所有玩家(除了iOS ..从未显示任何东西)

# set camera resolution to 720p, and the data format to H264 (alternatives are YUV and JPG)
v4l2-ctl --device=/dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=1
# set the frame rate
v4l2-ctl --device=/dev/video0 --set-parm=10

gst-launch-1.0 -v -e uvch264src initial-bitrate=300000 average-bitrate=300000 device=/dev/video0 name=src auto-start=true src.vidsrc \
                ! queue \
                ! video/x-h264,width=1280,height=720,framerate=10/1 \
                ! h264parse \
                ! flvmux streamable=true name=mux \
                ! queue \
                ! tee name=t \
                ! queue \
                ! filesink location=/home/pi/wedding.flv t. \
                ! queue \
                ! rtmpsink location='rtmp://wowzaserver/live/wedding live=1' >>/home/pi/wedding.log 2>&1

在这个最后阶段,我能够真正负担得起的一些事情是封装(FLV)和wowza RTMP,因为我已经围绕它构建了一切...

请帮助!!谢谢!

更新

鉴于我也在保存FLV文件,我发现如果我使用ffmpeg将该FLV文件(使用音频拷贝,视频拷贝)发送到RTMP服务器,一切正常(但显然它不是活的)!所以我现在开始相信这是Gstreamer封装RTMP的方式的一个问题 - 并且通过将ffmpeg放在中间它修复它......但它当然不是活的。 是否可以将输出管道输出到ffmpeg并使用ffmpeg的RTMP?

1 个答案:

答案 0 :(得分:1)

Mux不是由任何音频源+编码器提供的! autoaudiosrc应该作为源+一些AAC编码器(voaacenc或faacenc)。