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

FFmpeg02:常用命令实战

命令分类

在这里插入图片描述

处理音视频的流程

在这里插入图片描述

基本信息查询命令

在这里插入图片描述

录制命令

录制屏幕

ffmpeg -f avfoundation -i 1 -r 30 out.yuv

在这里插入图片描述
ctrl+c结束
使用ffplay进行播放

# ffplay旧版本的写法
ffplay -s 2880x1800 -pix_fmt uyvy422 out.yuv
# ffplay7.0的写法
ffplay -f rawvideo -video_size 2880x1800 -pixel_format uyvy422 out.yuv

为什么上述ffmpeg录制的时候-i可以指定为1呢?
执行ffmpeg -f avfoundation -list_devices true -i ""可以看到avfoundation支持的设备:
在这里插入图片描述

录制声音

ffmpeg -f avfoundation -i :0 out.wav

:0表示音频设备

分解与复用命令

在这里插入图片描述

多媒体格式转换

# 格式转换,保留音视频
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
# 去掉音频
ffmpeg -i out.mp4 -an -vcodec copy out.h264

处理原始数据命令

提取YUV数据

ffmpeg -i out.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv

提取PCM数据

# 采样率rate为44100 声道channel为2
ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm

播放pcm数据,由于pcm是裸流,需要指定采样率声道等信息

# 旧版ffmpeg
ffplay -ar 44100 -ac 2 -f s16le out.pcm
# ffplay7.0
ffplay -f s16le -ar 44100 -ch_layout stereo out.pcm

新版的ffmpeg中,用channel的layout布局来表示数量以及位置
常见 channel_layout 值一览

声道数组成说明
mono1C(中置)常见于语音、讲解
stereo2L + R左右声道,最常用
2.13L + R + LFE(低频)加了一个重低音
3.03L + R + C三声道(左、右、中)
4.04L + R + C + S(环绕)简易环绕布局
5.05L + R + C + LS + RS正常 5 声道系统(无低音)
5.16L + R + C + LFE + LS + RS最常见家庭影院布局
6.17L + R + C + LFE + LS + RS + RC带后中置的 6.1
7.18L + R + C + LFE + LS + RS + LB + RB多用于影院与游戏
quad4L + R + LS + RS早期四声道
hexagonal6L + R + C + LFE + LS + RS等同于 5.1
octagonal8环绕布局影院音效或高端 VR

声道英文简写含义对照表

缩写含义
LLeft(左)
RRight(右)
CCenter(中置)
LFELow Freq Effects(低频/重低音)
LSLeft Surround(左环绕)
RSRight Surround(右环绕)
LBLeft Back(左后)
RBRight Back(右后)
RCRear Center(后中置)
TFLTop Front Left(上前左)等(3D 声道扩展)

滤镜命令

在这里插入图片描述

# 裁剪视频 保留音频
ffmpeg -i out.mp4 -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy crop.mp4

裁剪与合并命令

拓展学习链接

裁剪

# 先解码再截取(精确)
ffmpeg -i out.mp4 -ss 00:00:00 -t 10 1.ts
# 先seek到某个位置再截取,快速但不精确
ffmpeg -ss 00:00:10 -i out.mp4 -t 10 1.ts
# 先seek到8秒位置的关键帧,再解码,然后解码2秒后,再开始截取,双重-ss保证快速和精确
ffmpeg -ss 00:00:08 -i out.mp4  -ss 00:00:02 -t 10 1.ts

-ss表示从第几秒开始截,

  • 如果-ss指定的开始时间超过输入文件的视频时长,则直接报错;
  • 假设-ss指定的时间点是非关键帧,
    • -ss-i前面,则先seek到关键帧,再往下读取,所以可能会有偏差,因为这是不解码的操作,相当于ffmpeg认为要快速seek到那个位置,而不是要精确
    • -ss-i后面,则从0解码,精确但是解码时间长

-t表示截取的时长,如果-t指定的时间超过视频时长,则尽可能截取

合并

在这里插入图片描述

ffmpeg -f concat -i input.txt concat.mp4

图片与视频互转命令

# 视频转图片
ffmpeg -i out.mp4 -r 1 -f image2 image-%3d.jpeg
# -r 表示每秒取一帧# 图片转视频
ffmpeg -i image-%3d.jpeg image.mp4

直播推/拉流命令

# 推流
ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName# 拉流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
http://www.dtcms.com/a/315305.html

相关文章:

  • 【LeetCode 热题 100】215. 数组中的第K个最大元素——(解法一)快速选择
  • CentOS卸载、安装MySQL8(yum操作)
  • 肾上腺疾病AI诊疗一体化系统应用方向探析
  • 智能图书馆管理系统开发实战系列(七):CMake构建系统与持续集成
  • 【Node.js从 0 到 1:入门实战与项目驱动】1.2 Node.js 的核心优势(非阻塞 I/O、事件驱动、单线程模型)
  • 比起登天,孙宇晨更需要安稳着陆
  • 飞算 JavaAI:为软件安全上锁的智能守护者
  • Antlr学习笔记 02、使用antlr4实现简易版计算器
  • 【Z字形变换】
  • 离线Docker项目移植全攻略
  • 明远智睿T113-i核心板:工业设备制造领域成本控制的破局者
  • NX982NX984美光固态闪存NX992NY102
  • UVa1480/LA5034 Jewel
  • webm 读取解析
  • Linux 系统重置用户密码指南
  • go安装gin
  • JMeter 性能测试工具使用教程
  • 【网络运维】Linux:逻辑卷管理
  • Spring @Component注解全解析
  • 计算机网络:子网掩码在路由转发中的关键作用
  • css的选择器
  • 虚拟机中查看和修改文件权限
  • MoonBit Pearls Vol.04:用MoonBit 探索协同式编程
  • Spring Security 认证与授权实现机制
  • 随机森林知识点整理:从原理到实战
  • 课题学习4——将原系统的BERT换为SBERT
  • 【网络运维】Linux:RAID存储技术
  • 单类别目标检测中的 Varifocal Loss 与 mAP 评估:从原理到实践(特别前景和背景类区分)
  • Transformer核心机制:QKV全面解析
  • 图片处理工具类:基于 Thumbnailator 的便捷解决方案