当前位置: 首页 > 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…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...