实现综述:

通过ffmpeg将本地的xxx.mp4进行切片处理,生成m3u8播放列表(索引文件)和N多个 .ts文件,并将其(m3u8、N个ts)放置在搭建好的webServer服务器的指定目录下,就可以得到一个可实时播放的URL(类似于:http://localhost/xxx/xxx.m3u8),最终将该URL运用于播放器中测试播放。

实现步骤:

1、打开终端,输入命令,安装Homebrew

1.1 先检查是否安装了Homebrew

在终端输入命令:

  1. brew help

。如果正常返回了帮助信息,说明已经安装了。

1.2 Homebrew帮助命令

1.2 如果未安装,则在终端输入安装命令:

  1. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、安装FFmpeg(音视频流化处理且可跨平台)工具

在终端输入命令:

  1. brew install ffmpeg

下图可清晰看到ffmpeg共47M(要耐心等待哦~),以及安装在本地的路径(usr/local/Cellar/ffmpeg/3.0.2)。

3、mp4->m3u8切片处理

通过刚刚安装的ffmpeg,在终端输入命令(灵活变化):

  1. ffmpeg -i XXX.mp4 -c:v libx264 -c:a copy -f hls XXX.m3u8

其中,XXX.mp4为本地视频文件,XXX.m3u8为最终生成的播放索引列表,与此同时还有N多个ts文件。

4、WebServer提供m3u8播放索引

首先在本地启用Apache搭建好WebServer(这里不做介绍了),然后将<步骤3>中的 XXX.m3u8 放置于该服务器下的共享目录下,由此可得到m3u8的播放URL(http://localhost/richyleo/m3u8/war3.m3u8),Richy的真实切片命令共大家参考替换:

  1. ffmpeg -i /Users/richyleo/Downloads/warcraft.mp4 -c:v libx264 -c:a copy -f hls /Library/WebServer/Documents/RichyLeo/m3u8/war3.m3u8

5、播放测试

打开Safari浏览器,或者在App中载入播放视频功能,传入播放地址即可完成。