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
根目录下