win10下编译ffmpeg + H264 + 支持H265的rtmp

下载msys并安装相应环境

参考:

https://www.jianshu.com/p/5f175dec9109
http://www.adintr.com/article/blog/328

本人使用vs2019进行编译
使用 适用于 VS 2019 的 x64 本机工具命令提示
(本教程亦适用于其他VS版本)

几点注意

  1. 重命名msys64/usr/bin/link.exe 为msys64/usr/bin/link.bak, 避免和MSVC 的link.exe抵触。

  2. 安装完成之后,先把安装目录下的msys2_shell.cmd中注释掉的
    rem set MSYS2_PATH_TYPE=inherit改成set MSYS2_PATH_TYPE=inherit
    这是为了将vs的环境继承给MSYS2。

编译h264和h265

参考:

http://www.adintr.com/article/blog/328

libx264 和 libx265

1. 编译安装 libx264

  1. git clone https://code.videolan.org/videolan/x264.git

  2. ./configure --enable-static --enable-shared --host=x86_64-w64-mingw64

  3. make

  4. make install

  5. export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

  6. 修改 /usr/local/lib/pkgconfig/x264.pc 中的路径.

ln -s /usr/local/lib/libx264.dll.a libx264.lib

2 编译安装 libx265

  1. 下载 x265_3.2.1.tar.gz https://bitbucket.org/multicoreware/x265/downloads/

  2. 解压运行 x265_3.2.1\build\vc15-x86_64\make-solutions.bat 生成 VC 工程

  3. 打开工程编译 64 位 Release

  4. 拷贝 x265.pc 到 /usr/local/lib/pkgconfig 下

    拷贝 libx265.lib 到 /usr/local/lib 下

    拷贝 x265.h, x265_config.h 到 /usr/local/include 下

几点注意

  1. H264与H265建议直接安装于msys目录下,其他位置亦可,编译时手动输入链接以保证位置无误。

  2. 安装过程中make什么找不到的,一律用pacman -S mingw-w64-x86_64-toolchain类似的安装。

  3. 启用H265 10位支持
    http://www.gregwessels.com/dev/2017/10/27/ffmpeg-x265.html
    编译H265打开HIGH_BIT_DEPTH
    另一个属性MAIN12可能会以红色突出显示。这是针对12位支持

  4. H265编译完,编译ffmpeg的时候会找不到,需要改一下名,上面的x265版本创建了一个名为x265-static.lib的静态库…将其重命名为x265.lib

编译sdl acc相关

参考:
https://blog.csdn.net/xiaoluer/article/details/84714769

解压下载的SDL源码包,例如放到D:\ffmpeg1.2\SDL-1.12.15目录,msys进入SDL目录,依次执行:

./configure -–prefix=/usr/local/SDL

make

make install

几点注意

  1. 多看ffbuild log检测哪里出问题了
  2. 遇到lib找不到的一律用类似操作

    ln -s /usr/local/lib/libx264.dll.a libx264.lib

编译ffmpeg

ffmpeg源码需要修改
使用这个:https://github.com/WangLCG/C-plus-plus/tree/master/rtmp_hevc

打开vs2019 x64本地工具
打开msys2的mingw64窗口

msys2_shell.cmd -mingw64

在msys2窗口输入

export PKG_CONFIG_PATH=/c/msys64/build/lib/pkgconfig:$PKG_CONFIG_PATH

进入ffmpeg文件夹执行:

./configure --toolchain=msvc --target-os=win64
–arch=x86_64
–enable-shared
–enable-small
–enable-version3
–enable-gpl
–enable-asm
–enable-nonfree
–enable-encoder=libx264
–enable-encoder=libx265
–enable-encoder=hevc
–enable-encoder=mjpeg
–enable-encoder=mpeg4
–enable-encoder=aac
–enable-libx264
–enable-libx265
–enable-decoder=h264
–enable-decoder=h265
–enable-decoder=aac
–enable-decoder=hevc
–enable-demuxer=aac
–enable-demuxer=mov
–enable-demuxer=mpegts
–enable-demuxer=flv
–enable-demuxer=h264
–enable-demuxer=h265
–enable-demuxer=hevc
–enable-demuxer=hls
–enable-demuxer=rtp
–enable-demuxer=rtsp
–enable-demuxer=rtmp
–enable-protocol=udp
–enable-protocol=rtp
–enable-protocol=tcp
–enable-muxer=h264
–enable-muxer=h265
–enable-muxer=hevc
–enable-muxer=flv
–enable-muxer=f4v
–enable-muxer=mp4
–enable-muxer=rtp
–enable-muxer=rtsp
–enable-muxer=rtmp
–enable-network
–disable-doc
–enable-ffplay
–prefix=./build
–extra-cflags="-I/c/msys64/build/include"
–extra-ldflags="-LIBPATH:/c/msys64/build/lib"

编译

make -j12

安装

make install

注意

  1. config完,把ffmpeg文件的config.h转为utf-8再make,不然编码warning很烦。

  2. 每次重写编译需要执行

    make clean
    make distclean
    ls -l /.o

    否则会出问题。

  3. ffmpeg ./configure链接多个地址,可用如下方式

    –extra-cflags="-I/c/msys64/mingw64/include -I/c/msys64/mingw64/include"
    –extra-ldflags="-LIBPATH:/c/msys64/build/lib -LIBPATH:/c/msys64/mingw64/lib"

  4. 遇到任何问题,查看ffbuild的log,见招拆招即可。

敬告:该系列的课程在抓紧录制更新中,敬请大家关注。敬告:本课程项目仅供学习参考,请不要直接商用,概不负责任何法律责任。 该系列的课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等。包括:音视频、流媒体、直播、Android、视频监控28181、等。 我将带领大家一起来学习使用FFmpeg开发视频监控项目,并动手操练。具体内容包括: 一、视频监控的架构和流程二、FFmpeg4.3+SDL2+Qt5开发环境的搭建三、FFmpeg的SDK编程回顾总结并操练四、SDL2.0的编程回顾总结并操练五、颜色空间转换RGB和YUV的原理与实战六、Qt5+FFmpeg本地摄像头采集预览实战七、代码封装:摄像头h264/5编码并存储八、Qt5+FFmpeg单路网络摄像头采集预览九、Qt5+FFmpeg单路网络摄像头采集预览录制会看十、onvif与GB/T-28181的简介  音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学 基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢?   因为没有学习音视频和流媒体的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。 所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、流媒体直播、视频监控、等等。   梅老师从事音视频与流媒体行业18年;曾在永新视博、中科大洋、百度、美国Harris广播事业部等公司就职,经验丰富;曾亲手主导广电直播全套项目,精通h.264/h.265/aac,曾亲自参与百度app上的网页播放器等实战产品。  目前全身心自主创业,主要聚焦音视频+流媒体行业,精通音视频加密、流媒体在线转码快编等热门产品。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值