让ffmpeg支持10bit编码
文章版权由作者柯O德尔和博客园共有,请尊重并支持原创,若转载请于明显处标明出处:http://www.cnblogs.com/koder/
最近因为工作需要,要进行265 10bit编码,于是从ffmpeg官网下载了最新版的32位的ffmpeg可执行程序,使用如下命令进行编码:
ffmpeg.exe -i input.ts -vcodec libx265 -pix_fmt yuv420p10le -acodec copy output.ts
得到了一个很蒙蔽的结果:
注意看黄色这一行,说的是ffmpeg不支持yuv420p10le像素格式,自动切换为yuv420p进行编码,但是yuv420p编出来位深度只有8bit,我去,难道最新版本的ffmpeg不支持10bit编码?
于是不死心啊,然后各种百度谷歌,最后从国外的一个问答网址上看到有个国外友人说那是因为你用的ffmpeg自带的x265编码器不支持10bit编码,恍然大悟,从上面x265编码器输出的信息中也能看出来是只支持8bit编码的,那么解决办法就是自己编译一个支持10bit的x265库,然后再集成到ffmepg里面去,等于说要自己重新编译ffmpeg哦,编译过的同学应该都知道这是极其痛苦的事情,但是为了革命,没办法啊,那么就来吧,这里介绍linux下面的操作:
1. 编译支持10bit的x265库:
从官网下载源码包:https://bitbucket.org/multicoreware/x265/wiki/Home;
要让x265支持10bit编码,只需要修改CMake的一个编译选项即可:
tar -zxvf x265_2.3.tar.gz cd x265_2.3/source vim CMakeLists.txt
把option(HIGH_BIT_DEPTH "Store pixel samples as 16bit values (Main10/Main12)" OFF)修改为option(HIGH_BIT_DEPTH "Store pixel samples as 16bit values (Main10/Main12)" ON)即可;
最后执行CMake编译即可:
cd x265_2.3/build/linuxcmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/x265_10bit -DENABLE_SHARED=OFF ../../source make -j4 make install
检验是否是真的支持10bit:
cd /usr/local/x265_10bit/bin ./x265 --help
输出信息如下:
x265 [info]: HEVC encoder version 2.3
x265 [info]: build info [Linux][GCC 4.4.7][64 bit] 10bit
说明支持10bit编码了。
2. 把新编译的支持10bit编码的x265库集成到ffmpeg中:
这就是自己编译ffmpeg的过程,可以参考网上的例子,这里重点是介绍编译支持10bit编码的x265,就不再说明了。
注意事项:
1. 在修改x265的CMakeList时,发现了这么一行说明:
# NOTE: We only officially support high-bit-depth compiles of x265
# on 64bit architectures. Main10 plus large resolution plus slow
# preset plus 32bit address space usually means malloc failure. You
# can disable this if(X64) check if you desparately need a 32bit
# build with 10bit/12bit support, but this violates the "shrink wrap
# license" so to speak. If it breaks you get to keep both halves.
# You will need to disable assembly manually.
说明要使用x265进行10bit编码需要在64位的机子上运行,32位的不行哦;
2. ffmpeg官网上的windows编译好的版本,不管是最新的32位还是64位版本,默认只支持8bit编码,所以要进行10bit编码只能按照上面的方法对x265重新编译,然后再集成到ffmpeg里面。
转载于:https://www.cnblogs.com/koder/p/7851387.html
让ffmpeg支持10bit编码相关推荐
- ffmpeg安装教程(支持10bit编码)
最近因为工作需要,要进行265 10bit编码,所以打算把ffmpeg, x265重新编译下. 1. 编译安装支持10bit的x265库 要让x265支持10bit编码,只需要修改CMake的一个编译 ...
- 如何让ffplay或者ffmpeg支持H265编码的rtmp/http-flv 实时直播流
很多初学者不知道ffplay或者ffmpeg是不支持flv封装的rtmp/http-flv流的,其原因是flv不支持H265编码payload的,因为当时制定flv封装协议的时候,H265还没出来,现 ...
- Hisi3516交叉编译ffmpeg支持h264编码
前言 Hi3516是海思半导体针对高清IPCamera产品应用开发的一款专业高端SOC芯片,具有1080P@30fps H264多码流编码性能.而ffmpeg是众多播放器的底层解.编码库,x264是一 ...
- ffmpeg支持MP3编码的方法
问题 近期一个项目中mp3文件较大,需要转成占用存储空间较小的文件.首先想到的是"格式工厂",非常便捷,但是此工具每次批量转换数量上限是1000,而我要转上万个.所以考虑用ffmp ...
- FFmpeg支持H265编码
目前FFmpeg已经能够支持H265编码,我们可以通过configure添加 --enable-gpl --enable-libx265来配置. 这就需要我们的系统环境中已经安装了libx265,且其 ...
- FFmpeg_编译支持h264编码的ffmpeg,并验证
系统环境:ubuntu16.04 FFmpeg:4.1 x264:http://download.videolan.org/x264/snapshots/ nasm:2.13.03 yasm:1.3. ...
- 群晖DSM7.X Video Station结合FFMPEG支持DTS视频及EAC3音频编码
群辉升级后不支持DTS\EA3音频编码,网上找了好多教程都不对,最后按这个教程成功了,特转发.原网址:群晖DSM7.X Video Station结合FFMPEG支持DTS视频及EAC3音频编码 - ...
- FFmpeg将Jpeg 编码到视频中
这个不能直接发h264,需要先解码,再编码 利用FFmpeg将Jpeg图片转为任意视频容器格式 原文: https://blog.csdn.net/oHanTanYanYing/article/det ...
- android支持色彩管理软件,安卓首家!OPPO全链路色彩管理系统亮相:全局支持10bit照片视频...
原标题:安卓首家!OPPO全链路色彩管理系统亮相:全局支持10bit照片视频 今天,OPPO未来科技大会在深圳举行,OPPO公布了安卓首家全链路色彩管理系统. OPPO全链路色彩管理系统从字面意思来理 ...
最新文章
- 建立CentOS 6.9 的Yum本地源
- UIButton设置图片 在导航条上的 不显示
- poj2186强联通(牛仰慕)
- 【ijkplayer】编译 Android 版本的 ijkplayer ① ( Ubuntu 安装 Git 软件 | 下载 ijkplayer 代码 )
- 我作为开发者犯过的两次愚蠢的错误
- SpringBoot+MyBatisPlus实现前端传递时间查询条件ajax请求后台并回显数据流程整理
- Linux网络编程 | 多路复用I/O :select、poll、epoll、水平触发与边缘触发、惊群问题
- 大量学术成果存在学术不端行为,撤销优青、面上、青年项目!
- php dump函数详解,php中var_dump()函数的详解说明
- MODIS三种常见数据辐射定标处理
- 12款免费的桌面便签软件
- [lua]紫猫lua教程-命令宝典-L1-03-01. 闭包
- 扒一扒:2020台湾Android-Kotlin--Java-面試題庫,竟如此--
- 微信推出网页版传输助手,真的好用吗?
- java实现京东登陆界面_京东登陆界面的实现
- ubuntu 更换系统源和pip源
- vue3+vite2多页面多路由 注意
- 新媒体运营:如何策划出一场完整高效的活动方案?(二) 黎想
- Calllog第一天
- 如何用计算机做微积分,利用计算知识搜索引擎WolframAlpha做微积分(快速指南).doc...