在 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 |