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

【音视频开发】第三章 FFmpeg 命令实战

【音视频开发】第三章 FFmpeg 命令实战

文章目录

  • 【音视频开发】第三章 FFmpeg 命令实战
  • 一、FFmpeg 查看帮助文档
    • 1.ffmpeg、ffplay、ffprobe 区别
    • 2.ffmpeg 命令查看帮助文档
    • 3.ffplay 命令查看帮助文档
    • 4.ffprobe 命令查看帮助文档
  • 二、FFmpeg 音视频处理基础流程
  • 三、FFmpeg 命令分类查询
  • 四、ffplay 命令
  • 五、FFmpeg 命令
    • 1.参数说明
    • 2.提取音视频数据
    • 3.提取像素格式
    • 4.提取 PCM 数据
    • 5.转封装

一、FFmpeg 查看帮助文档

1.ffmpeg、ffplay、ffprobe 区别

  • ffmpeg:Hyper fast Audio and Video encoder 超快音视频编码器
  • ffplay:Simple media player 简单媒体播放器
  • ffprobe:Simple mutimedia streams analyzer 简单多媒体流分析器

2.ffmpeg 命令查看帮助文档

  • 基本信息:ffmpeg -h
  • 高级信息:ffmpeg -h long
  • 所有信息:ffmpeg -h full,使用 ffmpeg -h full > ffmpeg_h_full.log,将信息打印到文件内查看

usage:

ffmpeg [options] [[infile options] -i infile] … {[outfile options] outfile}…

3.ffplay 命令查看帮助文档

  • 所有信息:ffplay -h

usage:

ffplay [options] input_file

4.ffprobe 命令查看帮助文档

  • 所有信息:ffprobe -h

usage:

ffprobe [OPTIONS] [INPUT_FILE]

二、FFmpeg 音视频处理基础流程

ffmpeg -i test_1920x1080.mp4 -acodec copy -vcodec libx264 -s 1280x720 test_1280x720.flv
在这里插入图片描述

  • 输入文件:-i test_1920x1080.mp4
  • 音频处理:-acodec copy,直接拷贝,不做处理
  • 帧处理:1280x720
  • 视频编码:-vcodec libx264
  • 输出文件:test_1280x720.flv

三、FFmpeg 命令分类查询

在这里插入图片描述
查看具体分类所支持的参数:

ffmpeg -h type=name

例如:

ffmpeg -h muxer=flv
ffmpeg -h filter=atempo
ffmpeg -h encoder=libx264

四、ffplay 命令

播放控制:
在这里插入图片描述

ffplay 命令文档:https://www.ffmpeg.org/ffplay.html

播放本地文件:

ffplay -window_title “test time” -ss 2 -t 10 -autoexit test.mp4
ffplay test.mp3

播放网络流:

ffplay -window-title “rtmp stream” rtmp://202.69.69.180:443/webcast/bshdlive-pc

强制解码器:

mpeg4 解码器:ffplay -vcodec mpeg4 test.mp4
h264 解码器:ffplay -vcodev h264 test.mp4

禁用音频或视频:

禁用音频:ffplay test.mp4 -an
禁用视频:ffplay test.mp4 -vn

播放 YUV 数据:

ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv

播放 RGB 数据:

ffplay -pixel_format rgb24 -video_size 320x240 -i rgb24_320x240.rgb
ffplay -pixel_format rgb24 -video_size 320x240 -framerate 5 -i rgb24_320x240.rgb

播放 PCM 数据:

ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm

简单过滤器:

ffplay -i test.mp4 -vf transpose=1

视频反转:

ffplay test.mp4 -vf hflip
ffplay test.mp4 -vf vflip

视频旋转和反转:

ffplay test.mp4 -vf hflip,transpose=1

音视频变速播放:

ffplay -i test.mp4 -af atempo=2

视频变速播放:

ffplay -i test.mp4 -vf setpts=PTS/2

音视频同时变速:

ffplay -i test.mp4 -vf setpts=PTS/2 -af atempo=2

五、FFmpeg 命令

1.参数说明

主要参数:

-i 设定输入流
-f 设定输出格式
-ss 开始时间
-t 时间长度

音频参数:

-aframes 设置要输出的音频帧数
-b:a 音频码率
-ar 设定采样率
-ac 设定声音的 Channel 数
-acodec 设定声音编解码器
-an 不处理音频
-af 音频过滤器

视频参数:

-vframes 设置要输出的视频帧数
-b 设定视频码率
-b:v 视频码率
-r 设定帧速率
-s 设定画面的宽与高
-vn 不处理视频
-aspect 设置横纵比
-vodec 设定视频编解码器
-vf 视频过滤器

2.提取音视频数据

保留封装格式:

ffmpeg -i test.mp4 -acodec copy -vn audio.mp4
ffmpeg -i test.mp4 -vcodev copy -an video.mp4

提取视频:

保留编码格式:ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264
强制格式:ffmpeg -i test.mp4 -vcodec libx264 -an test.h264

提取音频:

保留编码格式:ffmpeg -i test.mp4 -acodec copy -vn test.aac
强制格式:ffmpeg -i test.mp4 -acodec libmp3lame -vn test.mp3

3.提取像素格式

提取 YUV:

提取 3 秒数据,分辨率和源视频一致
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p yuv 420p_orig.yuv
提取 3 秒数据,分辨率转为 320x240
ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p -s 320x240 yuv420p_320x240.yuv

提取 RGB:

提取 3 秒数据,分辨率转为 320x240
ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb

RGB 和 YUV 之间的转换

ffmpeg -s 320x240 -pix_fmt yuv420p -i yuv420p_320x240.yuv -pix_fmt rgb24 rgb24_320x240_2.rgb

4.提取 PCM 数据

提取 PCM:

ffmpeg -i test.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le
ffmpeg -i test.mp3 -ar 48000 -ac 2 -sample_fmt s16 out_s16.wav
ffmpeg -i test.mp3 -ar 48000 -ac 2 -codec:a pcm_s16le out2_s16le.wav
ffmpeg -i test.mp3 -ar 48000 -ac 2 -f f32le 48000_2_f32le
ffmpeg -i test.mp4 -t 10 -vn -ar 48000 -ac 2 -f f32le 48000_2_f32le_2

5.转封装

保持编码格式:

ffmpeg -i test.mp4 -vcodec copy -acodec copy test_copy.ts
ffmpeg -i test.mp4 codec copy test_copy2.ts

改变编码格式:

ffmpeg -i test.mp4 -vcodec libx265 -acodec libmp3lame out_h265_mp3.mkv

修改帧率:

ffmpeg -i test.mp4 -r 15 output.mp4

修改视频码率

ffmpeg -i test.mp4 -b:v 400k output_b.mkv

修改音频码率:

ffmpeg -i test.mp4 -b:a 192k output_ba.mp4

修改音视频码率:

ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp4

修改视频分辨率:

ffmpeg -i test.mp4 -s 480x270 output_480x270.mp4

修改音频采样率:

ffmpeg -i test.mp4 -ar 44100 output_44100hz.mp4

相关文章:

  • Java遍历魔法
  • 嵌入式笔记 | 正点原子STM32F103ZET6 3 | 时钟系统
  • 【MySQL】基本查询(第一弹)
  • P10045 [CCPC 2023 北京市赛] 线段树
  • docker部署dify
  • VNA操作使用学习-14 再测晶振特性
  • 发布第四代液晶电视,TCL引领全新美学境界
  • 理解 RAG 第四部分:RAGA 和其他评估框架
  • Android BLE 权限管理
  • 城市街拍人像自拍电影风格Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 内网渗透(CSMSF) 构建内网代理的全面指南:Cobalt Strike 与 Metasploit Framework 深度解析
  • latex-二项式括号怎么敲?
  • Linux --centos安装显卡驱动
  • 【AI】AI编程助手:Cursor、Codeium、GitHub Copilot、Roo Cline、Tabnine
  • 零拷贝技术深度解析:原理、实现与性能革命
  • PWM控制电机转速的原理及相关寄存器值计算
  • 防窜货实时监控系统大屏:用python和Streamlit实现的防窜货大屏
  • 【算法学习】最小公倍数问题
  • HTML5前端第七章节
  • 【Go】结构体的基本使用
  • 沪喀同心|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • “中国神湖”加快放大资源规模!3亿美元换海外年产380万吨钾盐项目
  • 【社论】公平有序竞争,外卖行业才能多赢
  • 日月谭天丨这轮中美关税会谈让台湾社会看清了什么?
  • 广东省中医院脾胃病科大科主任张北平病逝,年仅52岁
  • 国家林草局原党组成员、副局长李春良接受审查调查