ffmpeg 不改变持续时间
ffmpeg dont change time duration
我尝试使用以下代码将 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 文件中没有改变,有人可以帮我解决这个问题吗?
我用代码解决了这个问题:
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
我尝试使用以下代码将 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 文件中没有改变,有人可以帮我解决这个问题吗?
我用代码解决了这个问题:
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