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必须先转换为aac,然后再转就可以了。

这个wav转aac暂时我是直接在一个在线网页转换的,使用ffmpeg参考下面这个:

https://blog.csdn.net/jaysuper/article/details/8239961

 

你可能感兴趣的:(音视频解码)