ffmpeg.exe的使用
命令格式
- 功能:
ffmpeg.exe
用于视频的转码。 - 最简单的命令
该命令将当前文件下的ffmpeg -i input.mp4 -b:v 720k output.mpeg
input.mp4
文件转换为output.mpeg
文件,并将output.ts
文件视频的码率设置为720kbps
。
命令格式
ffmpeg -i {输入文件路径} -b:v {输出视频码率} {输出文件路径}
所有的参数都是以键值对的形式指定的。 例如输入文件参数是“-i”,而参数值是文件路径;输出视频码率参数是“-b:v”,而参数值是视频的码率值。但是注意位于最后面的输出文件路径前面不包含参数名称。
常用命令参数说明:
-h: 帮助
-i filename: 输入文件
-t duration: 设置处理时间,格式为hh:mm:ss
-ss position:设置起始时间,格式为hh:mm:ss
-b:v bitrate: 设置视频码率
-b:a bitrate: 设置音频码率
-r fps: 设置帧率
-s wxh: 设置帧大小,格式为WxH
-c:v codec: 设置视频编码器
-c:a codec: 设置音频编码器
-ar freq: 设置音频采样率
更多命令行参数:ffmpeg文档
使用ffmpeg转码
使用ffmpeg将当前目录下的MP4视频转码为MPEG视频输出:
ffmpeg -i 那些年,我们一起追的女孩.mp4 -b:v 393k output.mpeg
ffplay.exe的使用
- 功能:ffplay.exe用于视频的播放
- 最简单的命令
命令格式
ffplay input.mp4
该命令将播放当前文件下的 input.mp4
命令格式
ffplay {输入文件路径}
ffplay.exe的参数格式和ffmpeg.exe是类似的。所有的参数都是以键值对的形式指定的(由于不包含输出文件,所以只能指定输入参数)。注意位于最后面的输入文件路径前面不包含参数名称。
快捷键说明:
q, ESC:退出
f :全屏
p, 空格: 暂停
鼠标点击屏幕: 跳转到指定位置
更多命令行参数:ffmplay文档
采集音频的方式
- Android
- AudioRecorder
- MediaRecoder
- IOS
- AudioUnit
- AVFoundation
- Windows
- DirectShow
- OpenAL
- AudioCore
FFmpeg进行屏幕录像和录音
先安装dshow软件 Screen Capturer Recorder, 项目地址:https://sourceforge.net/projects/screencapturer/files/ 。而后查看可用设备名字:
ffmpeg -list_devices true -f dshow -i dummy
会显示如下:
DirectShow video devices (some may be both video and audio devices)
“screen-capture-recorder” //视频设备
DirectShow audio devices
“virtual-audio-capturer” //音频设备.net
就能看到咱刚安装的Screen Capturer Recorder,若是你有其余的设备,好比摄像头,麦克风等,也会显示。
录制视频(默认参数)
ffmpeg -f dshow -i video="screen-capture-recorder" v-out.mp4
录制声音(默认参数)视频
ffmpeg -f dshow -i audio="virtual-audio-capturer" a-out.aac
同时录制声音和视频(默认参数)
ffmpeg -f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" av-out.mp4
查看视频录制的可选参数教程
ffmpeg -f dshow -list_options true -i video="screen-capture-recorder"
个人设备有以下显示
DirectShow video device options (from video devices)
Pin “Capture” (alternative pin name “1”)
pixel_format=bgr0 min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=bgr0 min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=bgr24 min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=rgb555le min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=rgb555le min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=rgb8 min s=1×1 fps=0.02 max s=1680×1050 fps=30
pixel_format=yuv420p min s=1×1 fps=0.02 max s=1680×1050 fps=30
示例视频录制(依次设置:分辨率 帧率 像素格式)
ffmpeg -f dshow -video_size 1680x1050 -framerate 30 -pixel_format yuv420p -i video="screen-capture-recorder" v-out.mp4
查看音频设备可选参数
ffmpeg -f dshow -list_options true -i audio=virtual-audio-capturer
指定参数录制音视频
ffmpeg -f dshow -video_size 1680x1050 -framerate 30 -pixel_format yuv420p -i video="screen-capture-recorder":audio="virtual-audio-capturer" av-out.mp4
Linux
使用x11grab,相信Linux用户都是高手,自行查看安装方法吧,点我查看。
安装完以后,能够录制了
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 v-out.mp4
上面的参数,指的是从屏幕的左上角(x=100, y=200)的位置,录制分辨率为1024×768的视频。
能够使用(ALSA)[https://ffmpeg.org/ffmpeg-devices.html]同时录制声音
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i hw:0 av-out.mkv
也能够使用Pulse声音输入设备
ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 -f pulse -ac 2 -i default av-out.mkv
OS X
使用 avfoundation ,而后查看可用设备
ffmpeg -f avfoundation -list_devices true -i ""
选用可用的相应的音视频设备,进行屏幕录制
ffmpeg -f avfoundation -i "<screen device index>:<audio device index>" av-out.mov
提示:
若是电脑配置比较低,可能不能很好的录制屏幕的同时进行音视频编码。这种状况下,能够先录制未压缩的音视频,最后再进行音视频编码压缩。
Linux:
ffmpeg -framerate 25 -video_size 1024x768 -f x11grab -i :0.0+100,200 -f alsa -ac 2 -i pulse -vcodec libx264 -crf 0 -preset ultrafast -acodec pcm_s16le output.mkv ffmpeg -i output.mkv -acodec ... -vcodec ... final.mkv
Windows:
ffmpeg -f dshow -i video="screen-capture-recorder":audio="Microphone" -vcodec libx264 -crf 0 -preset ultrafast -acodec pcm_s16le output.mkv
ffmpeg -i output.mkv -acodec ... -vcodec ... final.mkv
无损格式录制
若是想要完美的屏幕录制效果,能够使用x264进行无损编码
ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 -c:v libx264 -qp 0 -preset ultrafast capture.mkv
“-qp 0″是x264无损编码模式,“-preset ultrafast”表示最快的速度编码。