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

Linux ffmpeg 基础用法

简介

FFmpeg 是一个强大的开源多媒体框架,用于处理视频、音频和其他多媒体文件和流。它允许转换、录制、编辑、流媒体等等。

安装

  • Debian/Ubuntu
sudo apt update
sudo apt install ffmpeg
  • Red Hat/CentOS
sudo dnf install ffmpeg
  • macOS (via Homebrew)
brew install ffmpeg
  • 从源码构建
# Install dependencies
sudo apt update
sudo apt install -y build-essential yasm pkg-config libx264-dev libx265-dev libvpx-dev# Clone FFmpeg repo and compile
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure
make
sudo make install

常用选项

  • -i:指定输入文件

  • -f:指定输出的格式

  • -c:v:指定视频编解码器

  • -c:a:指定音频编解码器

  • -b:v:指定视频比特率

  • -b:a:指定音频比特率

  • -t:持续时间 (hh:mm:ss)

  • -ss:开始时间

  • -vn:禁用视频流

  • -an:禁用音频流

  • -map:选择指定的流

  • -y:无需询问即可覆盖输出文件

示例用法

查看 ffmpeg 版本
ffmpeg -version
转换视频格式

要将视频从一种格式转换为另一种格式(例如,将 .avi 转换为 .mp4

ffmpeg -i input.avi output.mp4
从视频中提取音频

提取音频并保存为 mp3 格式

ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
  • -q:a 0:设置音频质量(0 为最佳)

  • -map a:选择音频流

转换音频格式

要转换音频文件(例如,将 .wav 转换为 .mp3

ffmpeg -i input.wav output.mp3
调整视频大小

要将视频调整为特定分辨率(例如 1280x720

ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4
更改视频编解码器

要使用特定编解码器(例如 H.264 编解码器)转换视频

ffmpeg -i input.mp4 -c:v libx264 output.mp4
从视频中提取特定时间范围

要从视频中提取特定片段(例如从 1 分钟开始的 30 秒)

ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c:v copy -c:a copy output.mp4
  • -ss 00:01:00:开始时间(1分钟)

  • -t 00:00:30:时长(30 秒)

合并多个视频

将多个视频文件合并为一个

  1. 先创建一个文本文件,把文件的名称写进去,如下:
file 'input1.mp4'
file 'input2.mp4'
  1. 运行命令
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
视频添加水印
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
  • overlay=10:10:水印的位置(距左上角 10px
调整视频速度
  • 减速(50% 速度)
ffmpeg -i input.mp4 -filter:v "setpts=2.0*PTS" output.mp4
  • 加速(200% 速度)
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4
从视频中创建 GIF
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" -c:v gif output.gif
将音频转换为单声道
ffmpeg -i input.mp3 -ac 1 output.mp3
将音频转换为立体声
ffmpeg -i input.mp3 -ac 2 output.mp3
将音频的音量增加 2 倍
ffmpeg -i input.mp3 -filter:a "volume=2.0" output.mp3
将音频标准化为标准音量级别
ffmpeg -i input.mp3 -filter:a "loudnorm" output.mp3
通过 RTMP 流式传输音频/视频
ffmpeg -re -i input.mp4 -f flv rtmp://live.twitch.tv/app/stream_key
通过 RTP 传输音频
ffmpeg -i input.mp3 -f rtp rtp://192.168.0.100:1234
应用视频滤镜

FFmpeg 包含许多过滤器来调整视频属性,如亮度、对比度、饱和度等。

增加亮度和对比度的示例

ffmpeg -i input.mp4 -vf "eq=brightness=0.05:contrast=1.5" output.mp4
应用音频滤镜

降低音频噪音的示例

ffmpeg -i input.wav -af "afftdn" output.wav

总结

FFmpeg 是一个非常强大和灵活的多媒体工具,用于转换、编辑和处理音频和视频。它支持广泛的格式和编解码器,使其成为任何媒体相关任务的必备工具。使用FFmpeg,可以执行简单的任务,如转换文件和提取音频,以及更高级的任务,如流式传输、创建 gif 和编辑视频。广泛的过滤器和选项使其适用于几乎任何媒体相关的需求。

相关文章:

Linux ffmpeg 基础用法

简介 FFmpeg 是一个强大的开源多媒体框架,用于处理视频、音频和其他多媒体文件和流。它允许转换、录制、编辑、流媒体等等。 安装 Debian/Ubuntu sudo apt update sudo apt install ffmpegRed Hat/CentOS sudo dnf install ffmpegmacOS (via Homebrew) brew i…...

【C++入门】详解(中)

目录 💕1.函数的重载 💕2.引用的定义 💕3.引用的一些常见问题 💕4.引用——权限的放大/缩小/平移 💕5. 不存在的空引用 💕6.引用作为函数参数的速度之快(代码体现) &#x1f4…...

深度学习的加速器:Horovod,让分布式训练更简单高效!

什么是 Horovod? Horovod 是 Uber 开发的一个专注于深度学习分布式训练的开源框架,旨在简化和加速多 GPU、多节点环境下的训练过程。它以轻量级、易用、高性能著称,特别适合需要快速部署分布式训练的场景。Horovod 的名字来源于俄罗斯传统舞…...

计算机的错误计算(二百零八)

摘要 用两个大模型计算 arccot(0.9911588354432518e10) . 保留16位有效数字。两个的输出均是错误的。代码的输出格式亦均出错。 本节题目为一读者来信提议(不知该题目有何玄机?)。 例1. 计算 arccot(0.9911588354432518e10) . 保留16位有…...

海康机器人IPO,又近了一步

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。欢迎大家到本文底部评论区留言。 海康机器人的IPO之路,一路跌宕起伏,让无数投资者和业内人士关注。这不仅仅是一家企业的上市之旅,更是中国智能制造…...

【环境搭建】Metersphere v2.x 容器部署教程踩坑总结

前言 Metersphere部署过程中遇到的问题有点多,原因是其容器的架构蛮复杂的,比较容易踩坑,所以记录一下。 介绍 MeterSphere 是开源持续测试平台,遵循 GPL v3 开源许可协议,涵盖测试管理、接口测试、UI 测试和性能测…...

系统看门狗配置--以ubuntu为例

linux系统配置看门狗 以 ubuntu 系统配置看门狗为例 配置看门狗使用的脚本文件,需要使用管理员权限来执行: 配置是:系统每 30S 喂一次狗,超过 60S 不进行投喂,就会自动重启。 1. 系统脚本内容: #!/bin/b…...

阅读笔记——《A survey of protocol fuzzing》

【参考文献】Zhang X, Zhang C, Li X, et al. A survey of protocol fuzzing[J]. ACM Computing Surveys, 2024, 57(2): 1-36.【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。 目录 1、Introduction 2、Background 2.1、Communication Pro…...

C# 语法中级

总目录 C# 语法总目录 C# 语法中级 lambda 表达式1. 捕获外部变量2. 捕获迭代变量 匿名类型匿名方法异常相关1. 枚举器2. 可枚举对象3. 迭代器3. 迭代器语义4. yield break 语句5. 组合序列 可空类型1. Nullable< T > 结构体 lambda 表达式 编译器在内部将lambda表达式编…...

STORM:从多时间点2D图像中快速重建动态3D场景的技术突破

随着计算机视觉和机器学习技术的迅猛发展,我们已经能够利用AI来解决许多复杂的问题。然而,在处理大规模室外动态3D场景重建时,现有的方法往往面临着诸多挑战,如需要大量人工标注数据、处理速度慢以及难以准确捕捉移动物体等。为了解决这些问题,研究者们开发了STORM(Spati…...

excel前缀和(递增求和)

方法一&#xff1a;https://www.zhihu.com/zvideo/1382164996659515392?utm_id0 假设输入数据在B2:B10&#xff0c;选中单元格C2&#xff0c;输入SUM(B2:B2&#xff0c;然后选中其中的B2&#xff0c;按F4&#xff08;或者直接输入SUM(B$2:B2&#xff09;&#xff0c;回车确认&…...

【AI日记】25.01.11 Weights Biases | AI 笔记 notion

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛&#xff1a;Forecasting Sticker Sales笔记&#xff1a;我的 AI 笔记主要记在两个地方 有道云笔记&#xff1a;数学公式和符号比较多的笔记notion&#xff1a;没什么数学公式的…...

P8772 [蓝桥杯 2022 省 A] 求和

题目描述 给定 &#x1d45b; 个整数 &#x1d44e;1,&#x1d44e;2,⋯ ,&#x1d44e;&#x1d45b; 求它们两两相乘再相加的和&#xff0c;即 &#x1d446;&#x1d44e;1⋅&#x1d44e;2&#x1d44e;1⋅&#x1d44e;3⋯&#x1d44e;1⋅&#x1d44e;&#x1d45b;&…...

【Oracle篇】深入了解执行计划中的访问路径(含表级别、B树索引、位图索引、簇表四大类访问路径)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;从事IT领域✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控&#xff1b;并对SQLserver、NoSQL(…...

WSDL的基本概念

《WSDL 语法》这篇文章将详细介绍WSDL&#xff08;Web Services Description Language&#xff09;的语法。WSDL是一种基于XML的语言&#xff0c;用于描述Web服务及其访问方式。它允许开发者将Web服务定义为服务访问点或端口的集合&#xff0c;这些服务访问点可以通过特定的协议…...

RabbitMQ解决消息积压的方法

目录 减少发送mq的消息体内容 增加消费者数量 批量消费消息 临时队列转移 监控和预警机制 分阶段实施 最后还有一个方法就是开启队列的懒加载 这篇文章总结一下自己知道的解决消息积压得方法。 减少发送mq的消息体内容 像我们没有必要知道一个的中间状态&#xff0c;只需…...

Android 网络层相关介绍

关注 Android 默认支持的网络管理行为,默认支持的网络服务功能。 功能术语 术语缩写全称释义DHCPv6Dynamic Host Configuration Protocol for IPv6动态主机配置协议的第六版,用于在IPv6网络中动态分配IP地址和其他网络配置参数。DNS Domain Name System域名系统。LLALink-Loc…...

2025年第三届“华数杯”国际赛B题解题思路与代码(Matlab版)

问题1&#xff1a;产业关联性分析 在 question1.m 文件中&#xff0c;我们分析了中国主要产业之间的相互关系。以下是代码的详细解读&#xff1a; % 问题1&#xff1a;分析中国主要产业之间的相互关系function question1()% 清空工作区和命令窗口clear;clc;% 设置中文显示set…...

小米路由器IPv6 功能使用指南

本文不限于多层路由使用IPv6 的情况&#xff0c;提供解决IPv6 无法获取的更硬核的方法&#xff0c;需要有ssh 工具。&#xff08;无安卓设备&#xff0c;测试环境win、mac、ios&#xff09; 首先明确一点&#xff0c;就是如果想让你的设备得到GUA 地址&#xff0c;即访问 6.i…...

k8s dashboard离线部署步骤

确定k8s版本&#xff0c;以1.23为例。 部署metrics-server服务&#xff0c;最好用v0.5.2。 用v0.6.0&#xff0c;可能会报以下错误&#xff1a; nodekubemaster:~/Desktop/metric$ kubectl top nodes Error from server (ServiceUnavailable): the server is currently unabl…...

Wireshark抓包教程(2024最新版个人笔记)

改内容是个人的学习笔记 Wireshark抓包教程&#xff08;2024最新版&#xff09;_哔哩哔哩_bilibili 该课程笔记1-16 wireshark基础 什么是抓包工具&#xff1a;用来抓取数据包的一个软件 wireshark的功能&#xff1a;用来网络故障排查&#xff1b;用来学习网络技术 wireshark下…...

稀疏矩阵:BM25;稠密矩阵:RoBERTa - wwm - ext顺序

稀疏矩阵:BM25;稠密矩阵:RoBERTa - wwm - ext顺序 先后顺序 先BM25后RoBERTa - wwm - ext: 流程说明:首先可以使用BM25进行初步的检索。由于BM25是基于词频等统计信息的检索模型,它能够快速地从大规模文档集合中筛选出可能包含相关信息的文档子集。例如,在一个包含大量新…...

C# 结构体(Struct)

C# 结构体(Struct) 引言 在C#编程语言中,结构体(Struct)是一种值类型,它允许用户自定义数据类型。结构体可以包含多个成员,如字段、属性、构造函数和方法。与类(Class)相似,但结构体在内存管理、性能和继承方面有其独特的特点。本文将详细介绍C#结构体的概念、用法…...

Homestyler 和 Tripo AI 如何利用人工智能驱动的 3D 建模改变定制室内设计

让设计梦想照进现实 在Homestyler,我们致力于为每一个梦想设计师提供灵感的源泉,而非挫折。无论是初学者打造第一套公寓,或是专业设计师展示作品集,我们的直观工具都能让您轻松以惊人的3D形式呈现空间。 挑战:实现定制设计的新纪元 我们知道,将个人物品如传家宝椅子、…...

Python的pandas库基础知识(超详细教学)

目录 一、配置环境 二、序列和数据表 2.1 初始化 2.2 获取数值 2.3 获取索引 2.4 索引取内容 2.5 索引改变取值 2.6 字典生成序列 2.7 计算取值出现次数 2.8 数据表 2.9 数据表添加新变量 2.10 获取列名 2.11 根据列名获取数据 2.12 输出固定行 2.13 输出多行…...

【数据库】一、数据库系统概述

文章目录 一、数据库系统概述1 基本概念2 现实世界的信息化过程3 数据库系统内部体系结构4 数据库系统外部体系结构5 数据管理方式 一、数据库系统概述 1 基本概念 数据&#xff1a;描述事物的符号记录 数据库&#xff08;DB&#xff09;&#xff1a;长期存储在计算机内的、…...

大数据智能选课系统

1.产品介绍 产品名称&#xff1a;大数据智能选课系统 一、产品概述 随着信息技术的快速发展&#xff0c;大数据技术在教育领域的应用越来越广泛。针对当前高校选课过程中的繁琐操作、资源分配不均等问题&#xff0c;我们研发了一款基于大数据智能分析的选课系统。本系统旨在…...

esp32开发笔记之一:esp32开发环境搭建vscode+ubuntu

最近想用esp32做一个物联网项目&#xff0c;踩坑N个终于有点心得&#xff0c;写下来避免和我一样的小白踩无谓的坑。 写在前面&#xff1a; 第一&#xff0c;大家一定要用linux系统作为编译工具&#xff0c;速度上是windows无法比的&#xff0c;不要因为不熟悉linux而选择win…...

赛灵思(Xilinx)公司Artix-7系列FPGA

苦难从不值得歌颂&#xff0c;在苦难中萃取的坚韧才值得珍视&#xff1b; 痛苦同样不必美化&#xff0c;从痛苦中开掘出希望才是壮举。 没有人是绝对意义的主角&#xff0c; 但每个人又都是自己生活剧本里的英雄。滑雪&#xff0c;是姿态优雅的“贴地飞行”&#xff0c;也有着成…...

Trie树算法

Trie树&#xff0c;也称为前缀树或字典树&#xff0c;是一种特殊的树型数据结构。它用于存储一组字符串&#xff0c;使得查找、插入和删除字符串的操作非常高效。类似这种&#xff0c; 模板&#xff1a; 这是用数组来模拟上图中的树的结构&#xff0c;逻辑上和上图结构一致。 …...

自己做发卡网站长/荆门刚刚发布的

Ubuntu1404分辨率问题Ubuntu下虚拟机屏幕太小 Ubuntu14.04分辨率问题 Ubuntu下虚拟机屏幕太小 刚刚安装的Ubuntu屏幕很小&#xff0c;很多按键都点不到&#xff01; 现在体会到小屏幕的不方便&#xff0c;而且每次都要输入“CtrlAlt”进行切屏&#xff0c;浪费很多时间。 …...

阿旗建设局举报网站/百度站长平台提交网站

解题来源于蓝桥杯老师 题目要求如上 两种方法一种是用递归&#xff0c;另一种是用algorithm库函数中的全排列函数next_permutation具体代码如下&#xff1a; #include <iostream> #include <algorithm> using namespace std; int a[]{1,2,3,4,5,6,7,8,9}; int c…...

网站开发语言/快点tv下载安装

重要提示 本文使用的api 已停用&#xff0c;暂未找到可替代的api&#xff08;2023-02-10&#xff09; 效果图 前言 最近做一个室外大屏项目&#xff0c;系统上的输入法使用不方便&#xff0c;客户要求做一个嵌入web网页的手写输入法。 核心 后端接口api&#xff1a;使用 QQ输…...

做电商网站用什么软件/引擎优化seo

一、Hibernate持久化对象三种状态 在Hibernate中持久化类的对象可以划分为三种状态&#xff0c;分别是瞬态&#xff0c;持久态&#xff0c;脱管态。 1. 瞬态(Transient)&#xff0c;也叫临时态。处于这种状态的对象具备的特征如下&#xff1a; a) 不在Session的缓存中&#xff…...

总结网站推广策划书的共同特点/小红书推广方案

在小米的2020年开发者大会上&#xff0c;小米创始人兼董事长雷军表示将“坚定不移地全球化&#xff0c;目标是在未来几年在欧洲排到第一名”&#xff0c;这代表着它将继承华为的愿望在欧洲市场击败三星。由于众所周知的原因&#xff0c;中国手机企业难以进入海外两大最具价值的…...

西安高端网站设计公司/青岛关键词排名哪家好

1. DataTable.Select()&#xff0c;数据筛选&#xff0c;有四个重载,不带参数的重载Select()的意思是获取所有的行数组&#xff0c;并按主键进行排序。 2. DataTable.Clone()&#xff0c;复制表结构&#xff0c;也就是对象的深拷贝&#xff0c;在c#里面&#xff0c;有浅拷贝和…...