通过HLS使用ffmpeg进行直播,并通过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
答案 0 :(得分:8)
您还必须指定关键帧间隔。也称为GOP(图片组)大小。
-g [time]