我尝试使用以下代码将 UDP 流(由DVB信号生成)转换为 HLS m3u8文件:
ffmpeg -i udp://239.1.2.1:60001 -acodec aac -strict -2 -vcodec libx264 -hls_wrap 100 -f hls /var/www/html/ts/1.m3u8
并输出m3u8文件:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#EXT-X-MEDIA-SEQUENCE:66
#EXTINF:0.960000,
21.ts
#EXTINF:2.080000,
22.ts
#EXTINF:2.400000,
23.ts
#EXTINF:1.760000,
24.ts
#EXTINF:2.080000,
20.ts
我尝试使用选项-segment_time 10
在此文件中将目标持续时间更改为10,但目标持续时间在m3u8文件中没有变化,是否有人可以帮我解决此问题?
答案 0 :(得分:1)
我用代码解决了这个问题:
ffmpeg -i udp://239.1.2.4:60004?fifo_size=50000000 -acodec copy -vcodec copy -preset ultrafast -flags -global_header -f hls -hls_time 20 -hls_wrap 5 /var/www/html/ts/4.m3u8
将此选项添加到ffmpeg修复问题
-preset ultrafast -flags -global_header