1.首先将视频转换为编码h264,音频编码aac格式的mp4文件

使用ffprobe查看视频文件的编码格式

ffprobe 本地视频.mkv

如果音视频编码为h264/aac则执行命令

ffmpeg -i 本地视频.mkv -acodec copy -vcodec copy 转换视频.mp4

否则执行以下命令

ffmpeg -i 本地视频.mkv -acodec libfaac -vcodec libx264 转换视频.mp4

2.将mp4格式视频转换成ts格式

 ffmpeg -i 本地视频.mp4 -c copy -bsf h264_mp4toannexb 转换视频.ts

3.将ts格式视频切片,并生成m3u8文件

ffmpeg -i 本地视频.ts -c copy -map 0 -f segment -segment_list 视频索引.m3u8 -segment_time 6 前缀-%03d.ts

egment 就是切片,-segment_time表示隔几秒进行切一个文件,上面命令是隔6s,根据自己的需求调整参数

跨域问题

在跨域的网站根目录放crossdomain.xml文件,下面是允许所有的网站(一般不采取这样的方式,只是方便调试)均可以跨越访问资源配置如下:

<?xml version="1.0" encoding="utf-8"?>
<cross-domain-policy> 
    <allow-access-from domain="*"/>  
</cross-domain-policy> 

限制指定网站访问,可以参考百度https://www.baidu.com/crossdomain.xml配置

<cross-domain-policy>
    <allow-access-from domain="*.baidu.com"/>
    <allow-access-from domain="*.bdstatic.com"/>
    <allow-http-request-headers-from domain="*.baidu.com" headers="*"/>
    <allow-http-request-headers-from domain="*.bdstatic.com" headers="*"/>
</cross-domain-policy>

如果文件存储在第三方平台上,比如阿里云OSS,就把crossdomain.xml放在bucket根目录下