FFmpeg的录制命令

命令的作用

它可以捕捉桌面窗口,摄像头的视频流和麦克风的音频流。

命令的格式

ffmpeg [输入格式] [输入选项] -i [输入设备索引] [输出选项] 输出文件

其中输入选项输出选项是可选的,根据实际需要进行修改。

输入格式

Windows:

  • dshow : DirectShow输入格式,用于录制Windows上的摄像头、麦克风、屏幕、窗口等。
  • gdigrab:GDI抓取输入格式,用于录制Windows上的屏幕或窗口,可以选择特定的窗口进行录制。
  • vfwcap : 是一种输入格式,用于在 Windows 上录制视频设备(如摄像头)的输入源。

Linux:

  • v4l2 :Video for Linux 2输入格式,用于录制Linux上的视频设备,如USB摄像头等。
  • alsa:Advanced Linux Sound Architecture输入格式,用于录制Linux上的音频设备,如麦克风、扬声器等。
  • x11grab:X11抓取输入格式,用于录制X Window系统上的屏幕或窗口。

Mac:

  • avfoundation:AVFoundation输入格式,用于录制Mac上的摄像头、麦克风、屏幕等。
  • qtkit:QuickTime Kit输入格式,用于录制Mac上的摄像头、麦克风等。

输入选项:

  • -f <格式>:指定输入文件的格式(视频如.mp4 .avi .mkv .flv .mov等等 音频如 .mp3 .wav .aac .flac .wma等等)。
  • -i <输入文件>:指定输入文件的路径。
  • -s <分辨率>:指定视频的分辨率。
  • -r <帧率>:指定视频的帧率。
  • -ac <声道数>:指定音频的声道数(如:单声道(1) 立体声(2) 5.1环绕声(6) 7.1环绕声(8))。
  • -i <视频设备>:指定视频设备的路径(用于摄像头录制)。
  • -f alsa -i <音频设备>:指定音频设备的路径(用于声音录制)。

输入设备索引:

Windows:

  • dshow: 使用 ffmpeg -list_devices true -f dshow -i dummy 命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的索引号或设备名称。
  • gdigrab: 不需要设备索引,直接使用 -offset_x-offset_y-video_size 等参数指定需要录制的屏幕区域或窗口标题即可。
  • vfwcap: 使用 ffmpeg -list_devices true -f vfwcap -i dummy 命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的设备名称或索引号。

Linux:

  • v4l2: 使用 v4l2-ctl --list-devices 命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的设备名称或索引号。
  • alsa: 不需要设备索引,直接使用 -f alsa -i default 参数录制默认音频设备。
  • x11grab: 不需要设备索引,直接使用 -offset_x-offset_y-video_size 等参数指定需要录制的屏幕区域或窗口标题即可。

Mac:

  • avfoundation: 使用 ffmpeg -f avfoundation -list_devices true -i "" 命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的设备名称或索引号。
  • qtkit: 使用 ffmpeg -f qtkit -list_devices true -i "" 命令列出可用的视频设备及其对应的名称和索引号,然后根据需要选择对应的设备名称或索引号。

输出文件:

  • 单个输出文件:直接指定输出文件路径和文件名,如 output.mp4
  • 多个输出文件:使用通配符指定输出文件路径和文件名的格式,如 output-%03d.mp4,其中 %03d 表示输出文件名中序号的占位符,例如 output-001.mp4output-002.mp4 等。

例子:

录制窗口,60帧,使用1920x1080分辨率,存放到默认目录。

ffmpeg -f gdigrab -r 60 -i desktop -s 1920x1080 output.mp4

录制麦克风音频,存放到默认目录。

ffmpeg -f dshow -i audio="麦克风阵列 (适用于数字麦克风的英特尔 智音技术)" output.wav

录制摄像头 30帧,并且存放到d盘中的videos文件夹中(要保证有访问和修改目标文件夹的权限)。

ffmpeg -f vfwcap -r 30 -i 0 D:\videos\output003.mp4

如何播放我录制的视频

找到视频存放的目录,然后双击使用你的电脑上的播放器打开或者使用ffplay进行播放。

一般视频存放的位置以上面的输出文件为依据。如果只是单个文件名,例如output.mp4 则视频存放在你的ffmpeg的默认安装目录。如果指定了文件目录,如:D:\videos\output003.mp4 则视频存放在D:\videos中。

FFmpeg的录制命令的更多相关文章

  1. FFmpeg常用命令学习笔记(二)录制命令

    录制命令 1.FFmpeg录屏命令 ffmpeg -f avfoundation -i 1 -r 30 out.yuv -f:指定使用avfoundation采集数据 -i:指定从哪采集数据,它是一个 ...

  2. ffplay的快捷键以及选项 FFmpeg 基本用法 FFmpeg常用基本命令 ffmpeg常用转换命令,支持WAV转AMR

    ffmpeg -i 32_mkv_h264_718x480_ac3.mkv  -codec copy -bsf:v h264_mp4toannexb  -f mpegts xx.ts ./ffmpeg ...

  3. Android视频录制命令screenrecord

    不管是教学,还是为了演示,如果能将Android手机(或平板)的屏幕录制成视频文件,那是一件非常酷的事(iOS8已经提供了这一功能,能通过OS X直接在Mac上录制iPad.iPhone的屏幕,win ...

  4. Android截图命令screencap与视频录制命令screenrecord

    Android截图命令screencap 查看帮助命令 bixiaopeng@bixiaopeng ~$ adb shell screencap -v screencap: invalid optio ...

  5. ffmpeg常用转换命令,支持WAV转AMR

    音频转换: 1.转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 2.转换amr到wav: ffmpeg -acodec libamr_nb -i shenh ...

  6. ffmpeg 屏幕录制 so easy....

    linux Linux下使用FFmpeg进行屏幕录制相对比较方便,可以使用x11grab,使用如下的命令: ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec li ...

  7. FFMPEG 音频转换命令

    音频转换: .转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 .转换amr到wav: ffmpeg -acodec libamr_nb -i shenhux ...

  8. ffmpeg API录制rtsp视频流

    原文出自http://blog.csdn.net/zxwangyun/article/details/8190638#reply   作者 Sloan 这里在录制时,并没有进行转码,只是相当于把rts ...

  9. ffmpeg 转码命令与ffplay

    ffmpeg.exe用于视频的转码. ▫ 最简单的命令 ffmpeg -i input.avi -b:v 640k output.ts 该命令将当前文件夹下的input.avi文件转换为output. ...

  10. ffmpeg 音频常用命令

    ffmpeg的使用方式: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Stream ...

随机推荐

  1. 微信公众号短链实时阅读量、点赞数爬虫(不会Hook可用)

    众所周知,微信分享的公众号分享出的一般都是短链,在这个锻炼下使用浏览器打开并不能获取微信公众的阅读量点赞数等这些信息,如图1所示. 但是实际拥有详细信息的则是这个链接下面,提取链接所需要提交的信息包括 ...

  2. VSCode一键调用DOSBox运行MASM/TASM代码的自定义任务

    在学习汇编的时候,发现很多教程都未使用 VSC 进行开发,今天在 Gitee 看有意思的项目时候发现了这个 DOS汇编/VSC-ASMtasks 通过配置VSCode的自定义任务来实现调用dosbox ...

  3. AtCoder Educational DP Contest 刷题记录

    写在前面 深感自己 DP 很弱的 村人B 刷了点 DP 题,题集地址戳这里. 后记:刷完后感觉自己又行了 A - Frog 1 题意 给定 \(n\) 个石头,第 i 个石头的高度为 \(h_i\). ...

  4. js md5 和java md5后的值不一样

    开发发现js 对字符串md5 和 java对字符串md5 计算的结果居然不一样,后来找了一个匹配的这里记录一下 注:加密的对象中不能有空格,有空格md5后的结果就不一致,都是眼泪.. js md5算法 ...

  5. Vue大数据可视化(大屏展示)解决方案

    DataV:组件库基于Vue (React版) ,主要用于构建大屏(全屏)数据展示页面即数据可视化 官网地址: http://datav.jiaminghi.com/guide/#%E7%94%A8% ...

  6. 二分图的匹配 hdu 1083

    ***题意:n个学生,p门课,求最大匹配,即p门课是否都有人上*** 匈牙利算法 #include<iostream> #include<cstdio> #include< ...

  7. Kubernetes APIServer 最佳实践

    1. kubernetes 整体架构 kubernetes 由 master 节点和工作节点组成.其中,master 节点的组件有 APIServer,scheduler 和 controller-m ...

  8. navicat 查看,设计并导出数据库 ER图

    转载请注明出处: 1. navicat 查看 ER 图,有两种方式: 第一种:选中数据库,并右键点击选中逆向数据库到模型. 第二种:可以在工具栏点击查看,选中 ER,打开 某数据库,便会展示 该数据库 ...

  9. Linux进阶命令-grep

    Linux进阶命令----grep 目录 Linux进阶命令----grep grep 命令介绍 grep命令格式 常用选项 模式部分 匹配字符: 匹配次数: 位置锚定: grep 命令介绍 Linu ...

  10. 02-UPF-Power Domain

    How do we use power domain 使用UPF至少有一个power domain power domain可以进行嵌套 Defining Power Domain Example P ...