在 Windows 10 操作系统下,编译金山云支持 H265 编码 RTMP 的 ffmpeg 和 ffplay 工具。
(金山云 FFmpeg 地址)[https://github.com/ksvc/FFmpeg]
工具安装
msys2 安装
msys2 下载地址:www.msys2.org
下载完成之后点击安装,建议安装在默认路径:C:\msys64,然后进行下一步安装,当安装完成后先不启动程序,修改代理软件全局代理,加速后续安装软件下载。
在开始任务栏,启动 MYSY2 MinGW2 x64:
依次执行如下命令:
1 | # 更新所有包 |
安装完成后,将 msys2 安装路径下的 C:\msys64\mingw64\bin 路径添加至 Windows 10 操作系统环境变量。
安装 cmake 工具
cmake 下载地址:camkecmake 安装版本:cmake-3.17.0-rc3-win64-x64,安装时将路径添加至环境变量,否则手动添加。
安装完成之后我们在 msys2 中是找不到 cmake 命令的,这里我们把 windows path 添加到 msys2 中。
在 Windows 环境变量中新建一个名字为 MSYS2_PATH_TYPE 的环境变量,值改为 inherit,然后重启 msys2 就可以在 msys2 中使用安装的 cmake 了。
代码编译
编译 libx264
libx264 下载地址:x264
将 libx264 源码下载到:/home/octocat9lee/h265ffmpeg/x264 路径下,进入上层目录,创建 x264_install 目录,并执行如下命令:
1 |
|
上述命令执行完成后,libx264 将安装到 /home/octocat9lee/h265ffmpeg/x264_install 目录下。
编译 libx265
libx265 下载地址:x265
将 libx265 源码下载到:/home/octocat9lee/h265ffmpeg/x265_git 路径下,进入 /home/octocat9lee/h265ffmpeg/x265_git/build/msys 路径,执行如下命令生成 Makefile:
1 | sh make-Makefiles.sh |
在弹出的窗口中修改安装路径为 C:\msys64\home\octocat9lee\h265ffmpeg\x265_install,然后点击 configure,最后点击 generate 生成 Makefile 并关闭窗口。
生成 Makefile 后,执行如下命令进行编译和安装:
1 | make -j8 |
编译安装完成后,libx265 将安装到 /home/octocat9lee/h265ffmpeg/x265_install 目录下。
编译 SDL
官网下载:SDL2-2.0.22
解压至 /home/octocat9lee/h265ffmpeg 目录,进入 SDL2-2.0.22 目录下,然后执行如下命令:
1 | mkdir /home/octocat9lee/h265ffmpeg/sdl_install |
编译安装完成后,sdl 将安装到 /home/octocat9lee/h265ffmpeg/sdl_install 目录下。
编译 ffmpeg
下载金山云支持 RTMP H265 编码版本:H265 RTMP ffmpeg,切换至最新的 3.4 版本。ffmpeg 源码路径:/home/octocat9lee/h265ffmpeg/FFmpeg,执行如下命令:
1 |
|
因 libx264 版本问题,可能出现 x264_bit_depth 未定义问题,将 libavcodec/libx264.c 文件中的 x264_bit_depth 全部替换成 X264_BIT_DEPTH,然后重新编译。
编译完成后,将目录下的 ffmpeg、ffplay 以及libx264-164.dll、libx265.dll 和 SDL2.dll 文件复制到同一目录下,即可使用 ffmpeg 和 ffplay 进行 H265 的 RTMP、HTTP-FLV、HTTP-HLS 的使用。
使用示例如下:
1 | ffmpeg.exe -re -i hevc.mp4 -vcodec copy -an -f flv rtmp://10.0.15.44:20107/live/test |