1、编译环境
1.1 硬件环境
1)MacBook Air 2022
2)苹果 M2 芯片
1.2 软件环境
1)苹果系统 13.0
2)FFmpeg 5.1
2、编译步骤
2.1 安装x265
1)下载x265代码
命令:
代码语言:javascript复制git clone https://bitbucket.org/multicoreware/x265_git.git
2)编译x265
命令:
代码语言:javascript复制cd x265_git/build/xcode
cmake -DCMAKE_INSTALL_PREFIX=$(pwd)/build -DENABLE_SHARED=OFF ../../source
make -j10
3)安装x265
命令:
代码语言:javascript复制make install
2.2 安装FFmpeg
1)下载FFmpeg代码
命令:
代码语言:javascript复制git clone https://github.com/FFmpeg/FFmpeg.git
切换到5.1.2分支,命令:
代码语言:javascript复制cd FFmpeg
git checkout n5.1.2
2)替换FLV代码
命令:
代码语言:javascript复制git clone -b 5.1 https://github.com/runner365/ffmpeg_rtmp_h265.git
cp ffmpeg_rtmp_h265/flv.h FFmpeg/libavformat/
cp ffmpeg_rtmp_h265/flv*.c FFmpeg/libavformat/
3)安装FFmpeg
设置FFmpeg与x265的配置关系,命令:
代码语言:javascript复制export PKG_CONFIG_PATH=/project/x265_git/build/xcode/build/lib/pkgconfig
./configure
--prefix=$(pwd)/build
--enable-gpl --enable-nonfree --enable-pthreads --extra-libs=-lpthread
--disable-asm --disable-x86asm --disable-inline-asm
--enable-decoder=aac --enable-decoder=aac_fixed --enable-decoder=aac_latm --enable-encoder=aac
--enable-libx264 --enable-libx265
--pkg-config-flags='--static'
--enable-sdl
--enable-ffplay
编译及安装,命令:
代码语言:javascript复制make -j10
make install
2.3 解决报错
1)ERROR: x265 not found using pkg-config
解决:
代码语言:javascript复制wget https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
tar -xvf pkg-config-0.29.2.tar.gz
cd pkg-config-0.29.2
./configure --with-internal-glib
make -j9
make install
2)ERROR: sdl2 requested but not found
解决:
代码语言:javascript复制brew install SDL2
3、验证结果
3.1 生成H265媒体流
利用刚才生成ffplay时,同时生成的ffmpeg文件,我们可以生成一路包含H265编码的RTMP媒体流,命令:
代码语言:javascript复制./ffmpeg -stream_loop -1 -re -i source.flv -c:a copy -c:v libx265 -f flv rtmp://localhost/live/h265stream
3.2 播放H265媒体流
实用ffplay播放刚才生成的H265媒体流验证一下编译结果,命令:
代码语言:javascript复制./ffplay rtmp://localhost/live/h265stream
3.3 效果截图
#【选题思路】
现在音视频技术非常火,windows系统下支持H265编码格式的ffplay播放器比较多,但是macOS系统下的ffplay播放器却非常少,几乎是没有,就更不用说编译的教程了。所以,我就想把自己知道的知识分享出来,希望可以帮助到大家。stormzhang老师说技术文章的软硬件环境要写的足够细致,我感觉很对。因为自己经常照着网上的教程操作,结果一地鸡毛,最后发现是环境问题,所以我在开头重点描述了相关信息。
#【创作提纲】
1、描述编译播放器的软硬件环境。
2、介绍编译步骤,包括哪些重点内容和模块,比如x265、FFmpeg等。
3、生成ffplay播放器后,如何验证播放效果。