在线平台常用m3u8文件形式加载TS片段来播放,这样的好处是可以根据视频的播放进度实现加载当前播放的切片,而不用等待整个视频的完全加载,极大地减小了服务器的压力,降低了播放的延迟。
倘若我们有一部mp4电影,应当怎样切片呢。现在我用Mac平台演示一下。
下载ffmpeg
下载ffmpeg需要先安装Homebrew,若你已安装brew环境,可跳过下面的步骤。
// 安装brew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装完成brew可以在终端试一试是否成功安装,如下图:
1564798154691.jpg输入brew,显示如图信息表示安装成功
然后我们就可以安装ffmpeg了,终端输入:
brew install ffmpeg
稍等片刻,brew会拉取git上的ffmpeg,然后会自动部署ffmpeg,安装速度以来网络状况。安装ffmpeg完成可以终端输入:
ffmpeg -version
终端会显示当前ffmpeg版本即表示安装成功。
转换MP4视频 -> TS格式
这个时候可以进行视频编辑了。示例如下:
注:文件路径尽量使用英文名
ffmpeg -y -i <mp4源文件路径> -vcodec copy -acodec copy -vbsf h264_mp4toannexb <打算生成的TS文件路径>
示例:
ffmpeg -y -i /Users/$(whoami)/input/sourcevideo.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb /Users/$(whoami)/output/outputvideo.ts
可能有的mp4视频在转换ts文件时,终端会报异常,这个时候可以尝试更换视频来实现转码。当然,你也可以采用其他的方式转码,比如借助三方工具。
切片TS视频
接下来对视频进行切片操作,即生成若干连续TS文件和m3u8播放列表文件。
示例:
ffmpeg -i /Users/$(whoami)/output/outputvideo.ts -c copy -map 0 -f segment -segment_list /Users/$(whoami)/play/playlist.m3u8 -segment_time 10 /Users/$(whoami)/play/video_%03d.ts
然后,我们在play文件夹可以看到‘playlist.m3u8’文件和‘video_000.ts’,‘video_001.ts’...等连续ts文件,切片成功。
去嗨皮吧,视频切片成功啦,so easy!
网友评论