【问题标题】:Gstreamer HLSSink Pipeline Displays Black Frames in SafariGstreamer HLSSink 管道在 Safari 中显示黑框
【发布时间】:2018-04-25 19:13:48
【问题描述】:

这个get-launch-1.0命令行管道gst-launch-1.0 videotestsrc num-buffers=680 ! x264enc ! mpegtsmux ! hlssink location=junk2.%05d.ts playlist-location=junk2.m3u8

此服务器python -m SimpleHTTPServer 8000

Mac OS X Safari 上的本地网址http://localhost:8000/junk2.m3u8

似乎在本地 Safari 浏览器中播放,但显示黑框。为什么?

注意:python 控制台输出看起来很开心,所以所有路径都是正确的:

$ python -m SimpleHTTPServer 8000
Serving HTTP on 0.0.0.0 port 8000 ...
127.0.0.1 - - [25/Apr/2018 11:40:34] "GET /junk2.m3u8 HTTP/1.1" 200 -
127.0.0.1 - - [25/Apr/2018 11:40:34] "GET /junk2.m3u8 HTTP/1.1" 200 -
127.0.0.1 - - [25/Apr/2018 11:40:34] "GET /junk2.00001.ts HTTP/1.1" 200 -
127.0.0.1 - - [25/Apr/2018 11:40:34] "GET /junk2.00000.ts HTTP/1.1" 200 -

注意:还尝试了 hlssink 插件的各种选项而不改变行为:

  • target-duration=2
  • max-files=0
  • playlist-length=0

其他播放器:在 VLC 中正确播放和显示:

【问题讨论】:

    标签: gstreamer http-live-streaming gstreamer-1.0 gst-launch-1.0


    【解决方案1】:

    您的x264enc 选择了错误的个人资料。如果您不告诉它使用什么并且在您的用例中使用videotestsrc,它将选择4:4:4 颜色配置文件而不是4:2:0。很多解码器不支持这个。

    告诉videotestsrc 改为提供4:2:0 格式:

    gst-launch-1.0 videotestsrc num-buffers=680 ! video/x-raw, format=I420 ! x264enc ! mpegtsmux ! hlssink location=junk2.%05d.ts playlist-location=junk2.m3u8
    

    【讨论】:

    • 谢谢@Florian。按照你的建议工作。有趣的旁注:我提醒自己在修复格式问题时一定要清除缓存或更改文件名,否则刷新时不会加载新文件。
    • 哦,是的,Safari 的缓存在追踪此类问题时没有帮助..
    猜你喜欢
    • 2017-10-24
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    相关资源
    最近更新 更多