FFmpeg 命令行 音视频格式转换

news2024/11/25 21:49:51

📚:FFmpeg 提供了丰富的命令行选项和功能,可以用来处理音视频文件、流媒体等,掌握命令行的使用,可以有效提高工作效率。

目录

一、视频转换和格式转换

🔵 将视频文件转换为另一种格式

🔵 指定视频编码器和比特率

二、音频转换和格式转换

🔵 将音频文件转换为另一种格式

🔵 指定音频编码器和比特率

三、合并视频和音频

🔵 合并视频和音频流

四、视频剪切和裁剪

🔵 裁剪视频

五、视频截图和抽取帧

🔵 截取视频帧

六、 屏幕录制和实时流媒体

🔵录制桌面

🔵推送实时流媒体

七、常用参数集合

总结


以下是一些常见的 FFmpeg 命令行用法和示例:

// 一般的 ffmpeg 命令结构如下:

ffmpeg [全局选项] [输入选项] -i 输入文件 [输出选项] 输出文件

一、视频转换和格式转换

🔵 将视频文件转换为另一种格式

// 将 input.mp4 文件转换为 output.avi 文件

ffmpeg -i input.mp4 output.avi

🔵 指定视频编码器和比特率

// -c:v libx264 指定视频编码器为 H.264,
// -b:v 1000k 指定视频比特率为 1000kbit/s

ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k output.mp4

二、音频转换和格式转换

🔵 将音频文件转换为另一种格式

// 将 input.wav 转换为 output.mp3

ffmpeg -i input.wav output.mp3

🔵 指定音频编码器和比特率

// -c:a libmp3lame 指定音频编码器为 MP3(LAME)
// -b:a 128k 指定音频比特率为 128kbit/s

ffmpeg -i input.wav -c:a libmp3lame -b:a 128k output.mp3

三、合并视频和音频

🔵 合并视频和音频流

// -i video.mp4 -i audio.wav 分别指定视频和音频输入文件。
// -c:v copy 表示视频流直接复制,
// -c:a aac 指定音频编码为 AAC。
// -strict experimental 是为了支持某些 AAC 编码器


ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4

四、视频剪切和裁剪

🔵 裁剪视频

// 从原视频中裁剪出5s的视频
// -ss 00:00:05 指定开始裁剪的时间(这里是 5s),
// -to 00:00:10 指定结束时间(这里是 10s)。
// -c:v copy 和 -c:a copy 表示视频和音频流不重新编码,直接复制


ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c:v copy -c:a copy output.mp4

五、视频截图和抽取帧

🔵 截取视频帧

// -vf "select='eq(n\,100)'" 表示选择第 100 帧作为输出。
// -vsync vfr 设置为可变帧率输出。
// 输出文件是 frame.png。

ffmpeg -i input.mp4 -vf "select='eq(n\,100)'" -vsync vfr frame.png

六、 屏幕录制和实时流媒体

🔵录制桌面

// 在linux 系统下进行屏幕录制
// -f x11grab 表示使用 X11 桌面录制,
// -framerate 30 设置帧率为 30fps,
// -video_size 1920x1080 设置视频尺寸,
// -i :0.0+0,0 是屏幕位置参数。

ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0+0,0 output.mp4



// 在 Windows 系统上进行屏幕录制
// -f gdigrab:使用 gdigrab 输入设备,这是在 Windows 上进行屏幕捕获的一种方法。
// -framerate 30:指定录制的帧率,可以根据需要进行调整。
// -video_size 1920x1080:指定录制的视频尺寸,这里设置为1920x1080,你也可以根据需要调整。
// -i desktop:指定捕获整个桌面。你也可以指定具体的窗口标题或坐标区域进行捕获。
// 停止 ctrl + c

ffmpeg -f gdigrab -framerate 30 -video_size 1920x1080 -i desktop output.mp4

🔵推送实时流媒体

// -re 表示以实时速率读取输入,
// -i input.mp4 指定输入文件。
// -c:v libx264 和 -c:a aac 分别指定视频和音频编码器。
// rtmp://server/live/streamKey 是推流到的服务器地址和流名

ffmpeg -re -i input.mp4 -c:v libx264 -preset fast -maxrate 3000k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 128k -f flv rtmp://server/live/streamKey

七、常用参数集合

// 输入和输出选项:

-i 输入文件:指定输入文件。
-f 格式:指定输入或输出的格式,例如 -f mp4。
-r 帧率:设置帧率,例如 -r 30。
-s 分辨率:设置视频分辨率,例如 -s 1920x1080。


// 视频处理

-c:v 编解码器:指定视频编解码器,如 -c:v libx264。
-b:v 比特率:设置视频比特率,例如 -b:v 2M。
-vf 滤镜:应用视频滤镜,例如 -vf scale=1280:720(调整分辨率)或 -vf crop=w:h:x:y(裁剪)。

// 音频处理

-c:a 编解码器:指定音频编解码器,如 -c:a aac。
-b:a 比特率:设置音频比特率,例如 -b:a 192k。
-ar 采样率:设置音频采样率,如 -ar 44100。


// 其他常用选项

-ss 开始时间:从指定时间开始处理输入文件。
-t 持续时间:设置处理的持续时间。
-map 选项:映射输入流。
-preset 设置:调整编码速度和质量之间的平衡。

总结

这些是常见的 ffmpeg 命令行选项和功能,能够涵盖大多数基本的视频和音频处理需求。根据具体的任务和需求,可以灵活组合这些选项来完成各种复杂的视频处理任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1879109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录--字符串--替换数字

题目 给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 “a1b2c3”,函数应该将其转换为 “anumberbnumber…

cesium使用cesium-navigation-es6插件创建指南针比例尺

cesium-navigation-es6 是一个为 Cesium.js 提供导航控件的库,它提供了一些常见的用户界面组件,用于在 Cesium 场景中实现用户导航和交互。下面将介绍如何在项目中使用 cesium-navigation-es6。 使用步骤 1. 安装 cesium-navigation-es6 首先&#xf…

flex讲解

随着前端技术的不断发展和更新,flex布局成为前端布局的主流。但是仍然有很多前端新手搞不懂flex到底怎么用!!!今天我们就来好好讲讲flex布局 老规矩先上定义 什么是flex布局 布局的传统解决方案,基于盒状模型&#x…

K8S 集群节点扩容

环境说明: 主机名IP地址CPU/内存角色K8S版本Docker版本k8s231192.168.99.2312C4Gmaster1.23.1720.10.24k8s232192.168.99.2322C4Gwoker1.23.1720.10.24k8s233(需上线)192.168.99.2332C4Gwoker1.23.1720.10.24 当现有集群中的节点资源不够用&…

kinect2.0问题:四、DiscreteGestureBasics-WPF更换自己的gbd文件后报错

1、报错状况 “System.InvalidOperationException”类型的异常在 Microsoft.Kinect.VisualGestureBuilder.dll 中发生,但未在用户代码中进行处理其他信息: This API has returned an exception from an HRESULT: 0x800040052、解决方案 原设置 改成下图就不报错了…

【面试题】信息系统安全运维要做什么

信息系统安全运维是确保信息系统稳定、可靠、安全运行的一系列活动和措施。 其主要包括以下几个方面: 1.系统监控: 实时监测信息系统的运行状态,如服务器的性能指标、网络流量、应用程序的运行情况等。通过监控工具,及时发现系统…

1966 ssm 流浪猫领养网站系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 ssm 流浪猫领养网站系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/…

产品经理系列1—如何实现一个电商系统

具体笔记如下,主要按获客—找货—下单—售后四个部分进行模块拆解

机器学习原理和代码实现专辑

1. 往期文章推荐 1.【机器学习】图神经网络(NRI)模型原理和运动轨迹预测代码实现 2. 【机器学习】基于Gumbel-Sinkhorn网络的“潜在排列问题”求解 3. 【机器学习】基于Gumbel Top-k松弛技术的图形采样 4. 【机器学习】基于Softmax松弛技术的离散数据采样 5. 【机器学习】正则…

MySQL高级-MVCC-原理分析(RR级别)

文章目录 1、RR隔离级别下,仅在事务中第一次执行快照读时生成ReadView,后续复用该ReadView2、总结 1、RR隔离级别下,仅在事务中第一次执行快照读时生成ReadView,后续复用该ReadView 而RR 是可重复读,在一个事务中&…

INFINI Easysearch尝鲜Hands on

INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个自主可控的轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比,Easysear…

从一到无穷大 #30 从阿里云盘古的屠龙之术看使用blob storage作为统一存储层的优势

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 引言盘古演进过程盘古2.0 第一阶段Append-Only File System统一持久化层与ClientClie…

【操作系统期末速成】 EP01 | 学习笔记(基于五道口一只鸭)

文章目录 一、前言🚀🚀🚀二、正文:☀️☀️☀️1.1 考点一:操作系统的概率及特征 三、总结:🍓🍓🍓 一、前言🚀🚀🚀 ☀️ 回报不在行动…

使用Python构建文档替换工具,轻松解放双手!

引言: 在处理大量文档时,逐个替换关键词是一项耗时且繁琐的任务。但是,通过使用Python和wxPython,我们可以轻松构建一个文档替换工具,帮助我们快速完成这项任务。本文将详细介绍这段代码的功能和实现原理,以…

【活动感想】筑梦之旅·AI共创工坊 workshop 会议回顾

目录 🌊1. 会议详情 🌊2. 会议回顾 🌍2.1 主持人开场 🌍2.2 元甲-小当家 AI 驱动的创意儿童营养早餐料理机&今天吃什么App 🌍2.3 Steven- A l 心理疗愈认知 🌍2.4 伯棠-诸子百家(xExperts)-多智能…

2.2 Python数据类型详解

第二节:Python数据类型详解 Python作为一种动态类型语言,支持多种数据类型,每种数据类型都有其特定的特点和用途。本章将详细介绍Python中常见的数据类型及其特性,以及如何使用这些数据类型进行编程。 2.2.1 整数 (int) 整数是…

D-MAX纠偏软件Fife MAX Terminal软件MAX-Oi软件

D-MAX纠偏软件Fife MAX Terminal软件MAX-Oi软件

74HC595 驱动代码 单线串口输出转并输出

void _74HC595IOIinit() {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Pin RCLK_Pin ;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; //复用推挽…

告别模糊时代,扫描全能王带来清晰世界

模糊碑文引发的思考 上个月中旬去洛阳拜访了著名的龙门石窟,本就对碑文和文字图画感兴趣的我们,准备好好欣赏一下龙门石窟的历史文化古迹。到了地方之后,我发现石窟的高度和宽度远远超出了想象,正因如此,拍出来的文字…

知识不成体系?这篇Mysql数据库将成为你的解忧杂货店!(子查询)

欢迎来到一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力 对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426qq.com 。发布文章的风格因专栏而异,均自成体系,不足…