【问题标题】:gstreamer 1.0 and raspberry pi streaming from webcam to ios browsergstreamer 1.0 和树莓派从网络摄像头流式传输到 ios 浏览器
【发布时间】:2017-01-22 18:18:45
【问题描述】:

使用 gstreamer 1.0,我想创建一个管道,将视频从 Logitech C920 网络摄像头流式传输到运行 chrome ios 的 iphone。该管道将​​在树莓派模型 B 上运行。我想我需要使用 hlssink,并提供一个 m3u8 文件。我正在考虑运行一个 python-tornado 网络服务器来为树莓派上的 m3u8 文件提供服务。另外我知道罗技 C920 支持 H.264 的硬件编码,如果可能的话,我想使用它。到目前为止,我一直没有成功,如果有任何帮助或反馈,我将不胜感激。

【问题讨论】:

  • 您需要帮助构建 GStreamer 管道以使用网络摄像头视频创建传输流片段和 m3u8 文件吗?
  • 您尝试过 gst-rtsp-server 吗?它可能对流式传输到浏览器很有用。
  • @jgorosdev - 是的,我需要帮助来创建 GStreamer 管道。你有一个可以分享的例子吗?
  • @Alper Kucukkomurler - 你有没有可以分享的例子来说明它是如何工作的?
  • 您是否已经测试过您可以从网络摄像头中捕捉到?启动例如: gst-launch-1.0 v4l2src ! xvimagesink

标签: ios raspberry-pi gstreamer h.264 http-live-streaming


【解决方案1】:

考虑到 minimal hlssink 管道是这样的:

gst-launch-1.0 videotestsrc is-live=true ! x264enc ! mpegtsmux ! hlssink max-files=5

您需要使用x264enc 对来自相机的原始源进行编码,然后使用h264parser 进行解析。之后,您需要将不同的媒体流复用到一个 MPEG 传输流中(在这种情况下,我们只有视频)。

最终的管道将是,例如:

gst-launch-1.0 videotestsrc is-live=true ! video/x-raw, framerate=25/1, width=720, height=576, format=I420 ! x264enc bitrate=1000 key-int-max=25 ! h264parse ! video/x-h264 ! queue ! mpegtsmux ! hlssink playlist-length=10 max-files=20 playlist-root="http://localhost/hls/" playlist-location="/var/www/html/hls/stream0.m3u8" location="/var/www/html/hls/fragment%06d.ts" target-duration=5

我在v4l2src device=/dev/video0 之后添加了一些大写字母来帮助您添加,但这取决于相机型号。我还添加了来自hlssink 的一些不同的属性,以向您展示如何设置不同的文件位置。上面的管道使用videotestsrc 运行并将文件和播放列表写入/var/www/html/hls 文件夹。 用Apache测试,可以用vlc查看结果,也可以直接运行:

gst-launch-1.0 playbin uri=http://localhost/hls/stream0.m3u8

如果您对从网络摄像头拍摄的照片有任何疑问,可以关注此link 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-08
    • 2018-03-12
    • 2020-03-22
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    相关资源
    最近更新 更多