video-streaming - 使 gstreamer 循环文件名

标签 video-streaming gstreamer http-live-streaming

我能够使用 gstreamer 成功生成 hsl 流,代码如下:

gst-launch-1.0 -v  \
               videotestsrc is-live=true \
               ! omxh264enc target-bitrate=2000000 control-rate=variable \
               ! "video/x-h264,profile=high,width=600,height=300" \
               ! mpegtsmux \
               ! hlssink \
               playlist-root=http://192.168.0.51:9000/hlssink/ \
               location=/home/attila/frontend/hlssink/hlssink.%05d.ts \
               max-files=5 \
               target-duration=10 \
               playlist-location=/home/attila/frontend/playlist.m3u8

它工作得很好,但是有一个缺陷,根据hlssink的属性行生成的文件:

location=/home/attila/frontend/hlssink/hlssink.%05d.ts

不循环。因此客户端应该始终重新加载播放列表。如何使 gstreamer 循环遍历文件名?

最佳答案

hlssink 需要 max-files=0playlist-length=0 才能保留所有基本流 .ts block 和迭代(或循环)所有文件。

  • max-files:磁盘上保留的最大文件数。一旦达到最大值,旧文件就会开始被删除,为新文件腾出空间 那些。 0 保留全部。默认 10。

  • playlist-length:HLS 播放列表的长度。为了让玩家符合 HLS 规范第 6.3.3 节,这应该位于 至少 3。如果设置为 0,播放列表将是无限的。默认 5。

这里是hlssink的完整引用:https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/gst-plugins-bad-plugins-hlssink.html

关于video-streaming - 使 gstreamer 循环文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38294918/

相关文章:

android - YUV 缓冲区转换为 RGB 的内存分配

android - 以编程方式在android中读取framebuffer/dev/graphics/fb0

android - 在没有解密 key 的情况下从另一个应用程序中受 DRM 保护的应用程序播放 DASH 流媒体视频

c - 如何使用 C 语言中的 Gstreamer 编写照片墙?

javascript - 使用 FFmpeg 通过管道输出视频片段

java - ffmpeg 在 android 上的视频 http

c++ - gtkmm 和 gstreamermm 测试代码抛出运行时错误

ios - arm64 iOS Swift Gstreamer 库不支持 rtspsrc (Xcode 10.1)

ios - iPhone 上的 HTTP 实时流媒体服务器

用于 Apple HTTP Live 流(HLS)的 Python 模块?