ffmpeg常用命令

FFmpeg处理音视频流程
截屏2022-09-23 上午8.42.12.png
ffmpeg的安装
在macbook下的安装
  1. 使用Homebrew安装,打开终端(Terminal)应用程序。
  2. 如果您尚未安装Homebrew,请在终端中输入以下命令并按Enter键来安装Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 安装FFmpeg。在终端中输入以下命令并按Enter键:
brew install ffmpeg
  1. 等待安装完成。Homebrew将下载并安装FFmpeg及其相关依赖项。
  2. 安装完成后,您可以通过输入以下命令来验证安装:
ffmpeg -version
在Windows上安装FFmpeg
  1. 使用Windows包管理器Chocolatey安装,打开命令提示符或PowerShell(以管理员身份运行)。
  2. 如果尚未安装Chocolatey,请在命令提示符或PowerShell中输入以下命令并按Enter键安装Chocolatey:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  1. 安装FFmpeg。在命令提示符或PowerShell中输入以下命令并按Enter键:
choco install ffmpeg
  1. 等待安装完成。Chocolatey将下载并安装FFmpeg。
  2. 安装完成后,您可以在命令提示符或PowerShell中输入以下命令来验证安装:
ffmpeg -version
FFmpeg基本信息查询命令

-versio 显示版本
-formats 显示可用的格式
-demuxers 显示可用的demuxers
-protocols 显示可用的协议
-muxers 显示可用的muxers
-filters 显示可用的过滤器
-devices 显示可用的设备
-pix_fmts 显示可用的像素格式
-codecs 显示所有编解码器
-sample_fmts 显示可用的采样格式
-decoders 显示可用的解码器
-layouts 显示channel名称
-encoders 显示所有的编码器
-colors 显示识别的颜色名称
-bsfs 显示比特流filter

FFmpeg录制命令

ffmpeg -f avfoundation -i 1 -r 30 out.yuv
-f :指定使用avfoundation采集数据
-i :指定从哪儿采集数据,它是- -个文件索引号
-r :指定帧率

-f 指定使用 avfoundation 采集数据。
-i 指定从哪儿采集数据,它是一个文件索引号。在我的MAC上,1和2(外界显示器)都代表桌面(可以通过上面的命令查询设备索引号)。
-r 指定帧率。按ffmpeg官方文档说-r与-framerate作用相同,但实际测试时发现不同。-framerate 用于限制输入,而-r用于限制输出。

播放

ffplay -s 2560x1600 -pix_fmt uyvy422 out.yuv

录制的格式为yuv422,分辨率 2560x1600,所以要告诉ffplay 播放格式为uyuv422,通过 -pix_fmt参数

支持设备的索引号

macOS系统

ffmpeg -f avfoundation -list_devices true -i ""

windows系统

ffmpeg -list_devices true -f dshow -i dummy

ffmpeg -f avfoundation -i "<video device index>:<audio device index>" av-out.mov
⚠️视频录制案例
# macOS系统中执行
ffmpeg -f avfoundation  -i "2:0" -c:v libx264 -r 20 -preset ultrafast -crf 0 -pix_fmt yuv420p output.mp4
# Windows系统中执行
ffmpeg -f dshow -i video="Integrated Camera":audio="Microphone Array (Realtek High Definition Audio)" -c:v libx264 -r 20 -preset ultrafast -crf 0 -pix_fmt yuv420p output.mp4

-f :指定使用avfoundation采集数据
-c:v libx264rgb: 指定使用libx264rgb编码器。
-qp 0: 设置视频质量参数,0代表质量高,越大代表质量越低
-crf 10:10 来设定比较高的画质,默认是23;和 -qp 0 同理效果,crf更常用;同时使用-qp和-crf时,-qp通常会覆盖-crf的效果
-i: 表示录制的屏幕序号或者 屏幕序号:音频设备序号
-r 23: 表示音频码率,如出现画面和音频不一致,可通过此参数调整
-preset ultrafast: 速度优先ultrafast>superfast>veryfast>faster>fast>medium>slow>slower>veryslow
速度递减,画质递增
-pix_fmt yuv420p : 表示指定输出视频的像素格式

抓取鼠标
ffmpeg -f x11grab -capture_cursor 1 -i :0.0 output.mp4

-f x11grab: 表示使用X11抓取屏幕
-capture_cursor 1: 用于指定是否捕获屏幕录制时的鼠标光标;1表示启用捕获鼠标光标,0则表示禁用

FFmpeg录音命令

ffmpeg -f avfoundation -i :0 out.wav
:0 代表音频设备

开始录制音频

ffmpeg -f avfoundation -i :1 out.wav

播放

ffplay out.wav

yuv 是原始视频数据,ffplay 播放该类型视频时,需要指定分表率,分辨率从录制日志里可以看到

FFmpeg分解与复用

多媒体格式转换

ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
-i :输入文件
-vcodec copy :视频编码处理方式
-acodec copy :音频编码处理方式

抽取视频

ffmpeg -i f35.mov -an -vcodec copy out.h264

抽取音频

ffmpeg -i f35.mov -acodec copy -vn out.aac

FFmpeg处理原始数据命令

FFmpeg提取YUV数据

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

带分辨率播放

ffplay -s 638x358 out.yuv

FFmpeg提取PCM数据

ffmpeg -i out.mp4 -vn -ar 44100 -ac2 -f s16le out.pcm

FFmpeg滤镜命令

ffmpeg -i in.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4
crop 格式 : crop=out_w:out_h:x:y

FFmpeg裁剪与合并命令

裁剪

ffmpeg -i in.mp4 -ss 00:00:00 -t 10 out.ts

合并

ffmpeq -f concat -i inputs.txt out.flv
inputs.txt 内容为 'file filename'格式。

FFmpeg图片/视频互转命令

视频转图片

ffmpeg -i in.flv -r 1 -f image2 image-%3d.jpeg

图片转视频

ffmpeg -i image-%3d jpeg out.mp4

FFmpeg直播推/拉流

直播推流

ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName

直播拉流

ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

实战

推流地址

rtmp://47.98.37.74:1935/live/4K.m3u

拉流地址

http://www.xypsp.com/live/4K.m3u8
http://47.98.37.74/live/4K.m3u8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容

  • 参考资料:https://ffmpeg.org/ffmpeg-all.html#Synopsis 一、基本信息查询...
    yanerly阅读 3,037评论 0 0
  • FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。本文将简单介绍FFmpeg...
    MzDavid阅读 1,955评论 0 0
  • FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供的工具...
    小村医阅读 3,941评论 0 3
  • FFmpeg常用命令分类: 基本信息查询 录制 分解/复用 裁剪与合并 图片/视频互转 直播 处理原始数据 滤镜 ...
    沈枫_ShenF阅读 1,132评论 0 5
  • ffmpeg查询命令 常用命令 视频裁剪滤镜(播放器大小裁剪): ffmpeg -i killer.mp4 -vf...
    无神阅读 683评论 0 1