FFmpeg学习(11)——视频转码之-crf参数详解

2023-11-09

什么是固定码率因子crf?(Constant Rate Factor)

固定码率因子(CRF)是 x264 和 x265 编码器的默认质量(和码率控制)设置。取值范围是 0 到 51,这其中越低的值,结果质量越好,同时输出文件越大,越高的值意味着越高的压缩比,但你可能会在值大到某个点的时候注意到明显的质量损失。

对 x264,一般取值在 18 到 28 之间。默认值是 23,你可以先用它开始尝试。

在 ffmpeg 中,可以这样使用:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4

对 x265,默认CRF值是 28:

ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4

如果你不确定设置CRF为多少,可以从默认值开始,根据你对输出文件的主观感觉进行调整。输出质量是否足够好了?不是?那就把CRF调低一点。输出文件太大了?那就选一个更高的CRF。尽管你的具体结果可能会有变化,大体来说CRF数值 +6 会使文件大小减半,-6 会使大小增一倍。

为了达到最优编码效果,你应该主要在离线文件存储中使用CRF编码。

在这里插入图片描述

<
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FFmpeg学习(11)——视频转码之-crf参数详解 的相关文章

  • Windows平台Unity3d下如何同时播放多路RTSP或RTMP流

    好多开发者在做AR VR或者教育类产品时 苦于如何在windows平台构建一个稳定且低延迟的RTSP或者RTMP播放器 如果基于Unity3d完全重新开发一个播放器 代价大 而且周期长 不适合快速出产品 我们认为当前最好的方式就是集成现有N
  • Unity环境下RTMP推流+RTMP播放低延迟解决方案

    在本文之前 我们发布了Unity环境下的RTMP推流 Windows平台 Android平台 和RTMP RTSP拉流 Windows平台 Android平台 iOS平台 低延迟的解决方案 今天做个整体汇总 权当抛砖引玉 1 Unity环境
  • 国网B接口资源上报(Push_Resourse)接口描述和消息示例

    上篇blog 梳理了国网B接口的REGISTER接口描述和消息示例 前端系统加电启动并初次注册成功后 向平台上报前端系统的设备资源信息 包括 视频服务器 DVR DVS 摄像机 告警设备 环境量采集设备等模拟或数字信号采集设备信息 前端系统
  • wireshark提取视频数据之RTP包中提取H264和H265

    wireshark提取视频数据之RTP包中提取H264和H265 文章目录 wireshark提取视频数据之RTP包中提取H264和H265 1 背景 2 提取前工作 3 H264视频从RTP包中提取步骤 4 H265视频从RTP包中提取步
  • H264 NALU 使用PS封装 RTP发送

    最近由于项目平台需求 要将H264 NALU封装为PS再用RTP发送 PS封装按照ISO DEC 13818 1标准 一个PS包包含PS Header PES Header PS system header PS system map等 针
  • VLC相关参数中文说明!

    用法 vlc 选项 流 您可以在命令行中指定多个流 它们将被加入播放列表队列 指定的首个项目将被首先播放 选项样式 选项 用于设置程序执行期间的全局选项 选项 单字母版本的全局 选项 选项 一个仅在流之前应用的选项 且将覆盖先前的设置 流
  • FFmpeg入门详解之92:Live555学习之(一)-------Live555的基本介绍

    Live555学习之 一 Live555的基本介绍 前一阵子 因为项目需要 研究了一下Live555开源框架 研究的不是很深入 基本上把Live555当做API用了一下 但是毕竟也是本人看的第一个开源框架 在此记录总结一下 Live555是
  • Android平台GB28181设备接入端如何实现本地录像?

    实现Android平台GB28181设备接入的时候 有个功能点不可避免 那就是本地录像 实际上 在实现GB28181设备接入模块之前 我们前些年做RTMP推送和轻量级RTSP服务的时候 早已经实现了本地录像功能 本地录像功能 我们实现的主要
  • 6款真正好用的播放器推荐

    GOM player GOM player 是一款本身装有视频播放所需的解码 及占用系统资源少 并且能以最优秀的画质来观看多种格式影片的播放程序 可以支持播放大多数当前流行的视频格式 如 MP4 AVI WMV MKV MOV FLV 等
  • 【无标题】ZLM和wvp配置

    ZLM配置 wvp对zlm要求的配置只有一个 具体值随便设置 以9080为例 http port 9080 wvp配置 确保media gt ip为zlm的IP media gt port为刚才配置的9080 其他wvp配置参考配置说明按需
  • [轻量级RTSP服务]Linux

    背景 随着国产操作系统的推进 传统行业对Linux平台的呼声和需求越来越大 之前几年 我们发布了Linux平台运营商级的RTSP转RTMP推送模块 RTMP推送模块和RTSP RTMP播放模块 前段时间 有开发者问我们 是不是可以在Linu
  • FFmpeg进阶: 音频变声滤镜

    声音最重要的两个元素就是语速和语调 改变声音的辨识度主要也是从这两方面入手 我们可以通过对音频数据进行插值或者抽值修改 以达到降低语速和增加语速的目的 同时我们也可以通过对数据进行线性拉伸来调节音调 语速调整 语调调整 就可以让我们的声音千
  • GB/T28181-2016传输要求和Android平台设备接入技术实现

    相关协议规范 GB T28181 2016公共安全视频监控联网系统 信息传输 交换 控制技术要求相关的传输要求如下 5 1 网络传输协议要求 联网系统网络层应支持IP协议 传输层应支持 TCP和 UDP协议 5 2 媒体传输协议要求 视音频
  • 前端实现预览功能,播放rtsp视频流(node.js+ffmpeg+flv.js)

    实现思路 获取摄像头rtsp流 通过node js ffmpeg转码 通过哔哩哔哩flv js播放 1 获取摄像机RTSP流 之前文章有说明不多阐述 2 配置流媒体服务器 1 下载安装node js 运行node js 网上教程很多自行下载
  • Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP

    一对一音视频通话使用场景 一对一音视频通话都需要稳定 清晰和流畅 以确保良好的用户体验 常用的使用场景如下 社交应用 社交应用是一种常见的使用场景 用户可以通过音视频通话进行面对面的交流 在线教育 老师和学生可以通过音视频通话功能进行实时互
  • 深入理解Google Cast(三)探寻原理

    如何开发一个receiver application 先来简单说一下这个话题 Receiver本质就是一个网页 由html CSS和jacascript开发 如果要自定义receiver application 需要在 Google Cas
  • Unity实现Camera和Audio数据的低延迟RTMP推送技术探讨

    关于Unity实现RTMP直播推送技术方案 之前零散的写过几篇介绍 得到了好多开发者的关注 以Android平台为例 目前视频这块 我们demo实现的是Camera数据的采集 然后编码投递到底层 如果设备没有性能瓶颈 可达到高帧率 60帧
  • 最新VLC命令行参数大全(一)

    用法 vlc 选项 流 您可以在命令行中指定多个流 它们将被加入播放列表队列 指定的首个项目将被首先播放 选项风格 选项 用于设置程序执行期间的全局选项 选项 单字母版本的全局 选项 选项 仅对此选项之前的单条流生效 且优先级高于先前的设置
  • [技术分享]Android平台实时音视频录像模块设计之道

    实现背景 录像有什么难的 无非就是数据过来 编码保存mp4而已 这可能是好多开发者在做录像模块的时候的思考输出 是的 确实不难 但是做好 或者和其他模块有非常好的逻辑配合 确实不容易 好多开发者希望聊聊录像模块 实际上录像这块 需求层面的东
  • GB28181状态信息报送解读及Android端国标设备接入技术实现

    今天主要聊聊GB T28181状态信息报送这块 先回顾下协议规范相关细节 然后再针对代码实现 做个简单的说明 状态消息报送基本要求 当源设备 包括网关 SIP设备 SIP客户端或联网系统 发现工作异常时 应立即向本 SIP监控域 的SIP服

随机推荐

  • Illegal mix of collations ((latin1_swedish_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for报错

    Illegal mix of collations latin1 swedish ci IMPLICIT and gbk chinese ci COERCIBLE for operation 查看了数据库发现是建表时设置表的编码为latin
  • Git的Flow工作流分享

    最近我们团队对日常开发规范和版本控制等工作进行了调整 为此对GitFlow工作流以及它的各类变种也进行了学习 在此记录一下 只有一个Master分支带来的问题 首先我们回顾一下我们在日常与团队的合作开发一个项目中会遇到与版本控制相关的场景
  • 一些测试案例

    一些测试案例 微信发红包测试用例 功能 可移植性 性能 界面 安全性 易用性 水杯的测试用例 功能 界面 性能 安全性 兼容性 易用性 可移植性 抗震性 电梯的测试用例 功能测试 界面测试 易用性测试 安全性测试 性能测试 兼容性测试 淘宝
  • 【机器学习与深度学习理论要点】25.什么是归一化,为什么要进行归一化?

    1 归一化是指归纳同意样本的统计分布性 归一化在0 1之间是统计概率分布 归一化在 1 1之间是统计的坐标分布 2 归一化处理的目的 为了后面数据处理方便 归一化可以避免一些不必要的数值问题 为了程序运行时收敛加快 统一量纲 样本数据的评价
  • STM32+L298N+PWM可调速小车(四驱)

    完整工程代码已放到百度网盘 链接如下 链接 https pan baidu com s 16zcnfLt2iYlrDdN N6tKbA 提取码 dn54 一 L298N电机驱动板 电源引脚 VCC 外接直流电源引脚 电压范围在5 35V之间
  • import torchvision时提示ImportError: DLL load failed: 找不到指定的模块。

    ImportError DLL load failed 找不到指定的模块 本人使用的是windows anaconda4 6 11 安装torchvision 时使用的是pip install no deps torchvision pip
  • 卷积神经网络(convolutional neural network, CNN)

    卷积神经网络 convolutional neural network CNN 卷积神经网络 convolutional neural network CNN 是一种专门用来处理具有类似网格结构的数据的神经网络 卷积网络是指那些至少在网络的
  • 游戏计算机推荐,2020十大游戏笔记本电脑排名(最新游戏本推荐)

    2020十大游戏笔记本电脑排名 最新游戏本推荐 1 玩家国度冰刃3S 9代i7 RTX2070 240Hz超高刷新率电竞屏 2 外星人Alienware M15 银 红双色可选 144Hz 1080P电竞屏 3 联想Y7000P 2019
  • 真题详解(语法分析输入记号流)-软件设计(八十)

    真题详解 求叶子结点数 软件设计 七十九 https blog csdn net ke1ying article details 130787349 spm 1001 2014 3001 5501 极限编程XP最佳实践 测试先行 按日甚至按
  • Sublime Text 构建系统 - 学习整理

    Sublime Text 提供构建系统 Build Systems 构建系统可以调用外部程序来处理文件 也就是说 它可以调用一些脚本 或是编译器 解释器等 因此 构建系统的一个的常用示例就是编译 在本文 我们将重点放在构建系统本身上 构建系
  • FreeRTOS学习笔记—基础知识

    文章目录 一 什么是RTOS 二 前后台系统 三 实时内核 可剥夺型内核 四 RTOS系统 五 FreeRTOS系统简介 六 FreeRTOS源码下载 一 什么是RTOS RTOS全称为 Real Time OS 就是实时操作系统 核心在于
  • java android 中AES加解密帮助类封装

    AES就不说 网上一搜一把 直接上代码 import javax crypto Cipher import javax crypto spec IvParameterSpec import javax crypto spec SecretK
  • EF Core入门

    文章目录 前言 一 EF Core环境搭建 二 基本的增删改查 1 增加数据 2 查询数据 3 修改数据 删除数据 前言 EF Core是微软官方提供的ORM框架 EF Core不仅可以操作Microsoft SQL Server MySQ
  • vue两级select联动+input赋值+select选项清空

    vue两级select联动 input赋值 select选项清空 功能描述 根据select1的选项改变select2的选项 同时 根据select2的选项给input上的时间附上对应的值 当select1清空时将select2和input
  • c语言 前置声明,C语言编程开发前置声明都有哪些作用

    声明是我们在学习C语言编程开发的时候经常见到的一个设置条件 而今天我们就通过案例分析来了解一下 C语言编程开发前置声明都有哪些作用 前置声明是C C 开发中比较常用的技巧 主要用在三种情形 变量 常量 例如extern int var1 函
  • 下载cuda和cudnn(11.8版本)

    官方教程 CUDA Installation Guide Windows CUDA Toolkit Documentation nvidia com cuDNN Installation Guide NVIDIA Deep Learning
  • python学习笔记---进程和线程【廖雪峰】

    进程和线程 现在 多核CPU已经非常普及了 但是 即使过去的单核CPU 也可以执行多任务 由于CPU执行代码都是顺序执行的 那么 单核CPU是怎么执行多任务的呢 答案就是操作系统轮流让各个任务交替执行 任务1执行0 01秒 切换到任务2 任
  • konga--添加jwt插件详细步骤

    注意 添加jwt插件前 先实现接口正常访问 给kong添加插件 主要是实现对访问接口限制 可针对所有consumer 或者某个consumer 步骤如下 1 配置完成的service和route 参照 添加service和route 2 配
  • 微信小程序可以进行dom操作吗?

    小程序不能使用各种浏览器暴露出来的 DOM API 进行 DOM 选中和操作 原因 在小程序中 渲染层和逻辑层是分开的 分别运行在不同的线程中 逻辑层运行在 JSCore 中 并没有一个完整浏览器对象 因而缺少相关的DOM API和BOM
  • FFmpeg学习(11)——视频转码之-crf参数详解

    什么是固定码率因子crf Constant Rate Factor 固定码率因子 CRF 是 x264 和 x265 编码器的默认质量 和码率控制 设置 取值范围是 0 到 51 这其中越低的值 结果质量越好 同时输出文件越大 越高的值意味