ffmpeg 转换mp4或aac为 hls

参照网上很多教程的命令,直接转换,发现生成的m3u8有很少的切片文件,导致视频和音频都不全。命令如下:

方法一

ffmpeg -i <媒体文件> -c:v libx264 -c:a -f hls /usr/local/nginx/html/test.m3u8

没找到解决方案,上网查阅资料,切换了一个思路,先把音视频流转换为ts,再把生成的ts切分后生成m3u8,不知道为什么这个方式成功了,命令如下:

方法二

aac/mp4 to ts:

ffmpeg -y -i aac.aac -vcodec copy -acodec copy -vbsf h264_mp4toannexb aac.ts

aac.aac为待转换文件,aac.ts为生成的ts文件

ts to hls:

ffmpeg -i aac.ts -c copy -map 0 -f segment -segment_list /usr/local/src/nginx/html/aac.m3u8 -segment_time 5 /usr/local/src/nginx/html/aac%03d.ts

aac.m3u8和aac%d03d.ts为生成的hls文件,两者要在同一个目录,否则找不到。

后面工作需要PCM流转换为 hls流直播,成功了再写上来。。

hls不支持直接wav语音转换为hls(也有可能是我没找到),本想先将wav转换为mp4再转为hls,一直没成功,没想到通过上面方法二解决了。

猜你喜欢

转载自blog.csdn.net/liutianheng654/article/details/82869245