当前位置: 首页 > news >正文

ffmpeg使用手册

ffmpeg使用手册

文章目录

  • ffmpeg使用手册
    • ffmpeg是什么
    • 指令总结
      • 1.查看ffmpeg版本
      • 2.mkv转mp4
      • 3.裁剪 .mkv 视频
      • 4.不调节帧率,尽可能保证原视频质量的情况下将原始视频压缩
        • 4.1 crf
        • 4.2 preset
      • 5.调节视频帧率
      • 6.调节帧率,尽可能保证原视频质量的情况下将原始视频压缩

本教程持续更新,我学到多少就更新多少。关于ffmpeg如何安装可以看上一篇博客win系统环境搭建(十六)——windows下载安装ffmpeg最新版。若是想有更好的阅读体验,可以直接看我GitHub博客的本篇文章,排版上会更好一点,ffmpeg使用手册。

ffmpeg是什么

FFmpeg是一个开放源代码的自由软件,可以执行音频和视频多种格式的录影、转换、串流功能,包含了libavcodec——这是一个用于多个项目中音频和视频的解码器函式库,以及libavformat——一个音频与视频格式转换函式库。

具体请自行百度。😥

指令总结

1.查看ffmpeg版本

ffmpeg -version

2.mkv转mp4

ffmpeg -i input.mkv -vcodec copy -acodec copy out.mp4

3.裁剪 .mkv 视频

ffmpeg -i input.mkv -ss [start] -t [duration] -c copy output.mkv
  • input.mkv 是你要裁剪的原始视频文件。
  • [start] 是你要开始裁剪的时间,格式为 HH:MM:SS
  • [duration] 是你要裁剪的持续时间,格式也是 HH:MM:SS
  • output.mkv 是裁剪后的新视频文件。

4.不调节帧率,尽可能保证原视频质量的情况下将原始视频压缩

要使用FFmpeg将视频文件的大小减小,可以进行以下操作:

ffmpeg -i input.mp4 -crf 23 -preset medium output.mp4

这个命令将会将输入视频文件input.mp4的占用体积减小,并生成输出视频文件output.mp4

4.1 crf

在FFmpeg中,-crf参数是用于控制视频编码的质量与压缩比之间的权衡的参数。CRF(Constant Rate Factor)是一种基于目标质量的恒定比特率控制方法,它允许你设置输出视频的质量水平。CRF值越小,视频的质量越高,但文件大小也会增加。

在一般情况下,CRF值的范围是0到51。不同的范围值对应不同的质量和压缩级别。以下是一些常用的CRF值和对应的特征:

  • 0:无损模式,产生非常大的文件,质量最好。
  • 18-28:一般推荐范围,较高的质量和文件大小平衡。
  • 23:默认值,适用于大多数情况,提供良好的质量和合理的文件大小。
  • 29-51:较低质量的范围,适用于低比特率压缩或要求较小文件大小的情况。

你可以根据自己的需求和偏好选择合适的CRF值。较低的CRF值会提供更好的质量,但会增加文件大小。较高的CRF值会减小文件大小,但可能导致一些质量损失。

请注意,不同的视频编解码器可能对CRF值的范围有所不同,具体取值范围和效果可能会有所差异。建议在实际应用中进行测试和调整,以找到最适合你需求的CRF值。

4.2 preset

在FFmpeg中,-preset参数用于设置视频编码器的预设(preset)。预设是一组预定义的编码参数,可以影响编码速度和输出质量之间的权衡。不同的预设提供了不同的速度和质量选项。

以下是一些常用的预设选项:

  • ultrafast:最快的编码速度,但质量较低。
  • superfast:非常快的编码速度,稍微降低了一些质量。
  • veryfast:非常快的编码速度,质量稍低。
  • faster:快速的编码速度,质量略有降低。
  • fast:相对较快的编码速度,质量较好。
  • medium:平衡了速度和质量,是默认预设。
  • slow:较慢的编码速度,质量更好。
  • slower:更慢的编码速度,质量更高。
  • veryslow:非常慢的编码速度,提供最好的质量。

这些预设选项提供了不同的速度和质量平衡。如果你希望编码速度更快,可以选择速度较快的预设,但可能会牺牲一些质量。如果你更注重输出质量,可以选择速度较慢的预设,但编码速度会变慢。

你可以根据你的需求选择适合的预设选项。要指定预设,请使用-preset参数后跟预设名称,例如-preset medium

请注意,不同的视频编解码器可能支持不同的预设选项,具体的预设选项和效果可能会有所不同。建议在实际应用中进行测试和调整,以找到最适合你需求的预设选项。

5.调节视频帧率

ffmpeg -i input.mp4 -r 24 output.mp4

-i 选项指定了输入文件的名称为 input.mp4-r 选项指定了输出文件的帧速率为 24 帧每秒(fps),并且 output.mp4 是输出文件的名称。

6.调节帧率,尽可能保证原视频质量的情况下将原始视频压缩

将5和6的总结起来

ffmpeg -i input.mp4 -r 24 -crf 23 -preset slower output.mp4

效果是将我原先10兆大小的视频文件,压缩到了5兆。

相关文章:

ffmpeg使用手册

ffmpeg使用手册 文章目录 ffmpeg使用手册ffmpeg是什么指令总结1.查看ffmpeg版本2.mkv转mp43.裁剪 .mkv 视频4.不调节帧率,尽可能保证原视频质量的情况下将原始视频压缩4.1 crf4.2 preset 5.调节视频帧率6.调节帧率,尽可能保证原视频质量的情况下将原始视…...

操作系统导论-课后作业-ch15

对应异步社区资源HW-Relocation: 1. 种子1运行结果: 种子2运行结果: 种子3运行结果: 2. 需要将界限设置为930,结果如下: 3. 有人说原书翻译有误,原文如下所示: 原文翻译如…...

宝塔面板SRS音视频TRC服务器启动失败

首先,查找原因 1.先看srs服务在哪 find / -type f -name srs 2>/dev/null运行结果: /var/lib/docker/overlay2/5347867cc0ffed43f1ae24eba609637bfa3cc7cf5f8c660976d2286fa6a88d2b/diff/usr/local/srs/objs/srs /var/lib/docker/overlay2/5347867…...

04-Seata修改通信端口

基于docker环境部署下,可以翻看专栏之前的文章 配置文件 /home/server/seata/resources/application.yml 默认${server.port} 1000 1、修改服务端(TC)配置 seata:server:service-port: 7090 2、修改映射端口 在启动脚本中修改映射端口 docker run -id --nam…...

活动回顾丨云原生技术实践营上海站「云原生 AI 大数据」专场(附 PPT)

AI 势不可挡,“智算”赋能未来。2024 年 1 月 5 日,云原生技术实践营「云原生 AI &大数据」专场在上海落幕。活动聚焦容器、可观测、微服务产品技术领域,以云原生 AI 工程化落地为主要方向,希望帮助企业和开发者更快、更高效地…...

【数据结构与算法】4.自主实现单链表的增删查改

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点&…...

Linux系统常用命令行指令

Linux系统是一种常用于开源项目开发的生产环境,因其免费、开源、安全、稳定的特点被广泛应用于手机、平板电脑、路由器、电视和电子游戏机等嵌入式系统中,能够更加简便地让用户知道系统是怎样工作的。前几日我安装好了Red Hat Enterprise Linux 9.0&…...

java SSM园林绿化管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM园林绿化管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代 码和数据库,系统主要采…...

【issue-halcon例程学习】edges_color.hdev

例程功能 演示如何使用edges_color,展示只能从彩色图像中提取某些边缘的图像,说明edges_color和edges_image输出之间的差异。 代码如下 dev_update_off () read_image (Image, olympic_stadium) get_image_size (Image, Width, Height) dev_close_wind…...

设计模式—行为型模式之备忘录模式

设计模式—行为型模式之备忘录模式 备忘录(Memento)模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模…...

CMS如何调优

业务JVM频繁Full GC如何排查 原则是先止损,再排查。 FGC的原因是对象晋升失败或者并发模式失败,原因都是老年代放不下晋升的对象了。 1.可能是大对象导致的内存泄漏。快速排查方法:观察数据库网络IO是否和FGC时间点吻合,找到对应…...

在PyCharm中安装GitHub Copilot插件,login之后报出如下错误:

Sign in failed. Reason: Request signInInitiate failed with message: connect ECONNABORTED 20.205.243.166:443, request id: 7, error code: -32603 前提: 设置网址:https://github.com/settings/copilot,已设置为允许 或者&#xff1…...

L1-093 猜帽子游戏(Java)

宝宝们在一起玩一个猜帽子游戏。每人头上被扣了一顶帽子,有的是黑色的,有的是黄色的。每个人可以看到别人头上的帽子,但是看不到自己的。游戏开始后,每个人可以猜自己头上的帽子是什么颜色,或者可以弃权不猜。如果没有…...

JVM篇--JVM调优高频面试题

1 说一下 JVM 调优的工具? JDK 自带了很多监控工具,都位于 JDK 的 bin 目录下,其中最常用的是jconsole 和 jvisualvm 这两款视图监控工具。 jconsole:用于对 JVM 中的内存、线程和类等进行监控; jvisualvm&#xff1a…...

微软 AD 介绍 | 安全建议 | 防护

介绍: 什么是Active Directory(AD)? Active Directory 是由 微软开发的目录服务,用于存储和管理网络中的资源,如计算机、用户、组和其他网络对象。允许组织管理员轻松地管理和验证网络中的用户和计算机。 …...

React16源码: React中的reconcileChildren的源码实现

reconcileChildren 1 )概述 在更新了一个节点之后,拿到它的props.children要根据这个children里面的 ReactElement 来去创建子树的所有的 fiber 对象要根据 props.children 来生成 fiber 子树,然后判断 fiber 对象它是否是可以复用的 因为我…...

幻兽帕鲁Docker服务端搭建

幻兽帕鲁Docker服务端搭建 各种命令 https://bbs.saraba1st.com/2b/thread-2168983-1-1.html 存档恢复 这里直接看这个工程的readme就行:https://github.com/yoko-murasame/palworld-host-save-fix 其他参考:https://forum.gamer.com.tw/C.php?bsn7…...

【ARM Cortex-M 系列 1.1 -- Cortex-M33 与 M4 差异 详细介绍】

请阅读【嵌入式开发学习必备专栏 之 Cortex-Mx 专栏】 文章目录 背景Cortex-M33 与 M4 差异Cortex-M33Cortex-M4关系和差异举例说明 背景 在移植 RT-Thread 到 瑞萨RA4M2(Cortex-M33)上时,遇到了hardfault 问题,最后使用了Cortex…...

docker 部署及命令

一、容器概述 1、为什么要用到容器? ①容器可以屏蔽底层操作系统的差异性,让业务应用不管在哪里都是使用容器的环境运行,从而保证开发测试环境与生产环境的一致性 ②容器部署起来非常便捷和迅速,缩短开发测试部署的周期时间 2…...

API接口安全总结

接口分类 HTTP接口 RPC接口(客户端和服务器端的连接 例如游戏登陆)非web协议,PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务。当两个物理分离的子系统需要建立逻辑上的关联时,R…...

从零复现DeepSDF:环境配置与数据集生成全攻略

1. 环境准备:从零搭建DeepSDF复现基础 复现DeepSDF的第一步就是搭建合适的环境。这个环节看似简单,实则暗藏玄机。我最初尝试在云服务器上配置环境,结果因为权限问题踩了一堆坑。后来改用本地Ubuntu 16.04系统,整个过程才变得顺畅…...

Windows下WVP+ZLMediaKit联动实战:5分钟搞定GB28181摄像头接入(附端口避坑清单)

Windows下WVPZLMediaKit联动实战:5分钟搞定GB28181摄像头接入(附端口避坑清单) 在智能视频监控领域,GB28181协议作为国家标准协议,正在成为设备互联的主流选择。但对于刚接触这一领域的开发者来说,从零开始…...

永磁同步直线电机建模、仿真及优化教学:从基础原理入门到工程应用精通的系统学习与实战指南

永磁同步直线电机,建模,仿真及优化教学从入门到精通永磁同步直线电机高速精密绘图仪笔尖能在纸上跑出米每秒级速度却连发丝粗细的误差都没有,晶圆台托着指甲盖大的芯片在光刻机里微米级挪位卡得死死的,这些“直来直去还准到离谱”…...

通义千问1.8B-Chat部署教程:Supervisor管理服务,稳定运行不中断

通义千问1.8B-Chat部署教程:Supervisor管理服务,稳定运行不中断 1. 项目概述 通义千问1.5-1.8B-Chat-GPTQ-Int4是阿里云推出的轻量级对话模型,经过GPTQ-Int4量化后,显存需求仅约4GB,非常适合在消费级GPU或边缘设备上…...

Z-Image Atelier 生成动态效果预览:通过序列图像模拟简单动画过程

Z-Image Atelier 生成动态效果预览:通过序列图像模拟简单动画过程 最近在玩一个挺有意思的AI图像工具,叫Z-Image Atelier。它最吸引我的地方,不是生成单张多么精美的图片,而是它能帮你“脑补”出一段动态过程。简单来说&#xff…...

YOLO-v8.3实战:用AI识别图片中的物体,5分钟完成你的第一个检测项目

YOLO-v8.3实战:用AI识别图片中的物体,5分钟完成你的第一个检测项目 你是否曾经好奇,那些能自动识别照片中物体的人工智能是如何工作的?想象一下,你拍了一张街景照片,AI不仅能告诉你照片里有汽车、行人和红…...

Ostrakon-VL终端入门指南:如何导出结构化JSON结果用于BI工具接入

Ostrakon-VL终端入门指南:如何导出结构化JSON结果用于BI工具接入 1. 认识Ostrakon-VL终端 Ostrakon-VL终端是一款专为零售与餐饮行业设计的智能图像识别工具,它将复杂的AI技术包装成一个充满游戏感的像素风格界面。这个终端基于Ostrakon-VL-8B多模态大…...

基于Spark+Hadoop+Hive大数据分析的城市街道路灯智能化点亮时间优化研究

前言随着城市化进程的加速,城市街道路灯系统在保障交通安全、提升城市形象与居民生活质量等方面发挥着关键作用。本研究聚焦于城市街道路灯智能化点亮时间的优化,依托大数据分析技术深入挖掘路灯照明需求与环境因素之间的复杂关联。 研究整合多源大数据&…...

3PEAK思瑞浦 TPT1051V-SO1R SOP8 CAN收发器

特性 符合IS011898标准支持CAN FD和最高达5 Mbps的数据速率典型环路延迟:110纳秒5V电源供应,3.0V~5.5VI0接口接收器共模输入电压:士30V总线故障保护:42VCAN网络最多支持110个节点结温范围从-40C到150C闩锁性能超过500mA总线引脚ESD保护:-8kV人体模型 -1.5kV充电设备…...

STM32duino多传感器库:X-NUCLEO-IKS01A2驱动详解

1. 项目概述STM32duino X-NUCLEO-IKS01A2 是一个面向 Arduino 兼容生态(特别是基于 STM32 的开发板,如 NUCLEO-F401RE、NUCLEO-F411RE、NUCLEO-L476RG 等)的硬件抽象库,专为驱动 STMicroelectronics 官方推出的 X-NUCLEO-IKS01A2 …...