支持 flv+h265 的ffmpeg编译安装

这篇具有很好参考价值的文章主要介绍了支持 flv+h265 的ffmpeg编译安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、操作说明

ffmpeg 官方分支没有支持flv+h265,国内金山云发了补丁版本,地址:

git clone https://github.com/ksvc/FFmpeg.git -b release/3.4 --depth=1

二、编译依赖

1. h264

cd ~/ffmpeg_sources
git clone --depth 1 https://code.videolan.org/videolan/x264.git
curl -O -L http://anduin.linuxfromscratch.org/BLFS/x264/x264-20200819.tar.xz
xz -d x264-20200819.tar.xz
tar -xvf x264-20200819.tar
mv x264-20200819 x264
cd x264
PKG_CONFIG_PATH="$INSTALL_PATH/lib/pkgconfig" 
./configure --prefix="$INSTALL_PATH" --bindir="$INSTALL_PATH/bin" --enable-static --enable-shared
make
make install

2. h265

curl -O -L http://anduin.linuxfromscratch.org/BLFS/x265/x265_3.4.tar.gz
tar -xzvf x265_3.4.tar.gz
mv x265_3.4 x265
cd ~/ffmpeg_sources/x265/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$INSTALL_PATH" -DENABLE_SHARED:bool=on ../../source
make
make install

更多操作可参考:https://blog.csdn.net/xundh/article/details/100760114

3. 编译ffmpeg

PATH="$INSTALL_PATH/bin:$PATH" 
PKG_CONFIG_PATH="$INSTALL_PATH/lib/pkgconfig"
export PKG_CONFIG_PATH=$INSTALL_PATH/local/lib/pkgconfig:$PKG_CONFIG_PATH
.
/configure --prefix="$INSTALL_PATH"  --enable-static --enable-pic \
         --enable-encoder=aac --enable-encoder=libx264 --enable-gpl --enable-libx264 --enable-encoder=libx265  --enable-libx265 \
         --enable-decoder=aac --enable-decoder=h264 --enable-decoder=hevc  \
         --enable-demuxer=aac --enable-demuxer=mov --enable-demuxer=mpegts --enable-demuxer=flv --enable-demuxer=h264 --enable-demuxer=hevc --enable-demuxer=hls  \
        --enable-muxer=h264  --enable-muxer=flv --enable-muxer=f4v  --enable-muxer=mp4 \
        --disable-doc --enable-libmp3lame --enable-libfdk_aac --enable-nonfree

如果不成功,可以尝试在最后添加: --pkg-config="pkg-config --static"

# 编译
make
make install

# 最后执行一下
ldconfig

4. 截屏命令示例

 ffmpeg -i "视频地址" -y -f mjpeg  -c:v libx265 -x265-params qp=47  -timeout 15 -s 640x480 -vframes 1  1.jpg
 ffmpeg -i "视频地址" -y -f mjpeg    -timeout 15 -s 640x480 -vframes 1  1.jpg

三、问题处理

1. x264_bit_depth 未定义

libavcodec/libx264.c:892:9: error: ‘x264_bit_depth‘ undeclared (first use in this function)

原因:应该是x264的x264_bit_depth被改为了大写的X264_BIT_DEPTH。
解决方式:修改libx264.c文件,将此文件中的所有x264_bit_depth替换为X264_BIT_DEPTH,然后重新编译。

2. fdk-aac 出现has no member named ‘encoderDelay’

avctx->initial_padding = info.encoderDelay; 改为 avctx->initial_padding = info.nDelay;文章来源地址https://www.toymoban.com/news/detail-411408.html

到了这里,关于支持 flv+h265 的ffmpeg编译安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Stable Diffuse 之 安装文件夹、以及操作界面 UI 、Prompt相关说明

    目录 Stable Diffuse 之 安装文件夹、以及操作界面 UI 、Prompt相关说明 一、简单介绍 二、安装文件相关说明 三、界面的简单说明 四、prompt 的一些语法简单说明 1、Prompt :正向提示词 ,用文字描述在图像中出现的内容 2、Negative prompt:负面提示词,用文字描述不想在图像中出现

    2024年02月09日
    浏览(36)
  • iotop命令使用说明及iotop输出排序操作说明

    iotop是一个用来显示实时的磁盘活动 的工具,可查看哪些程序、进程或线程占用io过多。 iotop监控 Linux 内核输出的 I/O 使用信息,并且显示一个系统中进程或线程的当前 I/O 使用情况。它显示每个进程/线程读写 I/O 带宽。它同样显示当等待换入和等待 I/O 的线程/进程花费的时

    2024年04月12日
    浏览(49)
  • ElasticSearchHead操作说明

    (76条消息) Elasticsearch-Head(简称Head)-Java文档类资源-CSDN文库 1、下载资源包,解压 2、进入elasticsearch-head-master,执行:npm install  (在这之前需要安装nodejs) 3、输入npm run start命令启动elasticsearch-head 使用补充:本地使用的时候启动一下,服务器上如果安装一个,关闭终端就停止运行

    2023年04月16日
    浏览(45)
  • git 相关操作说明

    下载地址: 下载其中一个安装 2.打开gitee网站,注册账号 3.打开个人中心,选择ssh公钥,查看如何生成公钥 4.生成公钥后,添加相应的公钥 具体仓库操作 1.第一次提交需要配置账号 或者直接通过终端修改 如果是克隆项目指定分支到本地 3.拉取指定分支(更新,记住第一次

    2024年02月05日
    浏览(46)
  • Git —— submodule 操作说明

    这里存在一个较大的坑,默认检出的子模块并不属于任何分支,而是一个 “detached head” ,虽然可以提交更改,但是并没有本地分支跟踪提交的更改,这意味着 下次更新子模块会丢失这些更改 。 因此在对子模块进行开发修改前,请先切换其所属分支和对应的 commit id。 由于

    2024年02月05日
    浏览(59)
  • RabbitMQ 管理界面操作说明

    当我们安装好RabbitMQ,并开启了 rabbitmq_management 插件并重启RabbitMQ服务后,我们就可以访问管控台了。 rabbitmq_management 开启后,重启RabbitMQ服务,然后浏览器访问 http://localhost:15672/ 账号:guest 密码:guest 登录进去后: 点击队列名,可以进行消息数量的查看: 消息内容查看: A

    2023年04月17日
    浏览(47)
  • QGIS 3D功能操作说明

    QGIS 可以轻松快速地创建 3D 地图和可视化。 可用于3d数据效果浏览及与2D数据的对比及数据的打印输出。具体功能如下。 1.在 QGIS 中,您可以通过几个简单的步骤创建 3D 模型。      (1)在QGIS中添加3D 数据的数据层,例如DEM,以供3D功能使用。               (2) 打开

    2024年02月17日
    浏览(50)
  • C#关于byte的操作说明

    获取byte中每一位的值 获取int16中其中某几位的数值 bit 内容   11-15 预留   10 值7   6-9 值6   5 值5   4 值4   3 值3   2 值2   0-1 值1   public UInt16 ToByte() { UInt16 ret = 0x00; ret = (UInt16)(ret | ((UInt16)Waypoint 9)); ret = (UInt16)(ret | ((UInt16)Side 8)); ret = (UInt16)(ret | ((UInt16)Head 7)); ret = (UInt16)(ret

    2024年02月09日
    浏览(47)
  • ORACLE表空间说明及操作

    数据存储:表空间是数据库中存储数据的逻辑结构。它提供了用于存储表、索引、视图、存储过程等数据库对象的空间。通过划分数据和索引等对象的存储,可以更好地管理和组织数据库的物理存储结构。 性能管理和优化:通过将不同类型的数据存储在不同的表空间中,可以

    2024年02月08日
    浏览(47)
  • 电脑入门:路由器 基本设置操作说明

    路由器  基本设置操作说明 首先我们我设置路由器,就需要先登录路由器, 那么怎样登路由器啊? 登录路由器的方法是   在ie的地址栏输入:http://192.168.1.1  输入完成以后直接回车  那么如果你输入正确 这个时候就应该听到有用户名的提示  呵呵 这是怎么回事啊?  不要召

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包