ffmpeg HTTP LIVE STREAMING 删除旧片段

问题描述 投票:0回答:3

你好,我有一个 ffmpeg 的实时 HTTP 流输入 我想使用 ffmpeg 创建 HLS 流来执行此操作

ffmpeg -i http://127.0.0.1:4242/bysid/7275 -map 0 -codec:v libx264 -codec:a copy -f ssegment -segment_list playlist.m3u8 -segment_list_type hls -segment_list_size 10 -segment_list_flags +live -segment_time 10 out%03d.ts

我工作正常,我只是想删除 playlist.m3u8 中未显示的旧段

segment_list_size 10

这将保留播放列表文件中的最后 10 个文件,我只想将这些文件保留在硬盘上

ffmpeg http-live-streaming
3个回答
27
投票

您可以使用 HLS 分段器最近添加的选项:

-hls_flags delete_segments

您需要更改命令以使用 HLS 分段器而不是流分段器,方法是使用 -f hls 而不是 -f ssegment。

我一直在使用此选项,但它并没有完全按照您的要求进行操作,而是将其实现为符合 HLS 规范。有关更多信息,请参阅 ffmpeg 文档:https://www.ffmpeg.org/ffmpeg-formats.html


2
投票

使用

-segment_wrap 10

用于换行和重写段文件


0
投票

以下内容按预期工作,并且正在删除旧的段文件:

ffmpeg.exe -i rtsp://admin:[电子邮件受保护]:554/Streaming/Channels/1 -fflagslush_packets -hls_list_size 4 -max_delay 5 -flags -global_header -hls_flags delete_segments -hls_time 3 -vcodec copy -y C:\T xample.m3u8

© www.soinside.com 2019 - 2024. All rights reserved.