FFmpeg 将视频转成ts切片并生成m3u8播放文件
1.首先将视频转换为编码h264,音频编码aac格式的mp4文件
使用ffprobe查看视频文件的编码格式
ffprobe 本地视频.mkv如果音视频编码为h264/aac则执行命令
ffmpeg -i 本地视频.mkv -acodec copy -vcodec copy 转换视频.mp4否则执行以下命令
ffmpeg -i 本地视频.mkv -acodec libfaac -vcodec libx264 转换视频.mp42.将mp4格式视频转换成ts格式
ffmpeg -i 本地视频.mp4 -c copy -bsf h264_mp4toannexb 转换视频.ts3.将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根目录下