嘟嘟社区

[疑问] FFmpeg下MP4转M3U8的命令问题


本帖最后由 solomon 于 2022-9-17 11:27 编辑

现在使用MP4转M3U8命令如下
ffmpeg -i demo.mp4 -c:v copy -c:a copy -f ssegment -segment_format mpegts -segment_list demo.m3u8 -segment_time 5 %05d.ts
生成的M3U8时长比MP4少了,请问大佬们怎么解决呢?

要求不重新编码,生成速度快点,可以自定义生成的ts文件名规则
请问大佬们这个命令怎么写啊?

更新
谢谢5楼大佬的回答:
ffmpeg -i filename.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls filename.m3u8
这条命令转换后时长一致,但是问题是怎么自定义ts文件名称呢?

ffmpeg -i test.mp4 -vcodec copy -acodec aac -bsf:v h264_mp4toannexb -map 0 -f segment -segment_list output.m3u8   -segment_time 5 output_%03d.ts

chxin 发表于 2022-9-17 10:37
ffmpeg -i test.mp4 -vcodec copy -acodec aac -bsf:v h264_mp4toannexb -map 0 -f segment -segment_list  …

谢谢大佬,还是掉帧啊,49分钟的视频变成48分钟的了

你是不是应该设置下fps相关的参数,我没弄过,建议下
本帖最后由 匿名会员 于 2022-9-17 11:03 编辑

ffmpeg -i big.mp4 -b:v 1M -g 60 -hls_time 2 -hls_list_size 0 -hls_segment_size 500000 output.m3u8

ffmpeg -i filename.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls filename.m3u8

谷歌的

匿名会员 发表于 2022-9-17 10:59
ffmpeg -i big.mp4 -b:v 1M -g 60 -hls_time 2 -hls_list_size 0 -hls_segment_size 500000 output.m3u8

f …

ffmpeg -i filename.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls filename.m3u8
谢谢大佬,这条命令转换后时长一致,但是问题是怎么自定义ts文件名称呢?