【问题标题】:Ffmpeg hls live streaming - How to generate shorter segmentsFfmpeg hls 直播 - 如何生成较短的片段
【发布时间】:2015-05-08 11:58:49
【问题描述】:

一直使用 ffmpeg 通过 HLS 进行直播并通过 video.js 播放。它可以工作,但在流开始到实际开始播放的时间之间有 20 秒的延迟。

你知道为什么下面的 ffmpeg 命令不会像我在命令中定义的那样创建 3 秒的段吗?这些段往往是 9s 或 10s。无法将它们缩小到更短的尺寸

ffmpeg -f x11grab -s 1280x720 -r 30 -i :0.0+nomouse -f alsa -ac 2 -i pulse -async 30 -vcodec libx264 -pix_fmt yuv420p -acodec libfdk_aac -ar 44100 -b:a 64k -threads 0 -s 640x360 -f hls -hls_time 1 -hls_list_size 1 -hls_allow_cache 0 /tmp/hls/#{@stream_name}/index.m3u8

这是 m3u8 播放列表文件:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:9
#EXT-X-MEDIA-SEQUENCE:10
#EXTINF:8.333333,
index10.ts
#EXTINF:8.333333,
index11.ts
#EXTINF:8.333333,
index12.ts
#EXTINF:8.333333,
index13.ts
#EXTINF:2.366667,
index14.ts
#EXT-X-ENDLIST

【问题讨论】:

  • 问题:在您的情况下,hls_list_size 是什么 - 它有效吗?我试图将它用于我认为它的预期用途,但它似乎不起作用。我将它设置为 5,并期望磁盘上最多存在 5 个 .ts 文件。但它只是不断地添加文件,磁盘空间不足......

标签: ffmpeg video-streaming video.js http-live-streaming


【解决方案1】:

您还必须指定关键帧间隔。也称为 GOP(图片组)大小。

-g [time]

【讨论】:

  • 在使用 -g 之前我使用了 -force_key_frames "expr:gte(t,n_forced*2)" 但我不明白为什么它不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 2015-05-12
  • 2017-07-15
相关资源
最近更新 更多