【发布时间】:2015-04-02 00:13:51
【问题描述】:
我需要一些天才的帮助 - 我正在尝试为即将举行的婚礼设置直播……而且我几乎可以正常工作 - 音频似乎是问题所在。
这是我的设置
- 树莓派 B+ 型
- Logitech C920(我正在使用的板载 h264 编码)
- 机载 (C920) 麦克风
- USB wifi 到 iPhone 4G 连接
- gstreamer1.0
- Amazon EC2 Wowza RTMP 服务器
我已经全部设置好了,但是一旦我混合了音频,任何播放器都不会播放流。
什么有效: - 我的 gstreamer 管道没有混入音频 - Wowza 接收到一致的流,没有失败 - 各种Flash播放器/iOS/Android和VLC都播放视频
什么不: - 在多路复用器中启用音频(使用下面的管道) - 但是 gstreamer 没有抱怨 - 但是 Wowza 接收到一致的流,没有失败 - 各种 Flash 播放器无法同时播放音频和视频。有些只是显示第一个视频帧 - VLC 播放 1 帧视频和大约 100 毫秒的音频,然后停止
理想情况下,我也希望将多路音频/视频 FLV 也存储在 SD 卡上,以防网络出现故障 - 但如果需要牺牲“三通”以使其正常工作,那就这样吧。
这是我当前的 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?
【问题讨论】: