制作 gstreamer 循环文件名
Make gstreamer loop file names
我能够使用 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=0
和 playlist-length=0
才能保留所有基本流 .ts 块并迭代(或循环)所有文件。
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
我能够使用 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=0
和 playlist-length=0
才能保留所有基本流 .ts 块并迭代(或循环)所有文件。
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