音视频开发音视频

FFmpeg 命令

2019-01-20  本文已影响3人  未见哥哥

一、录制命令

1.1、获取支持的设备

要录制屏幕,首先要知道当前笔记本支持的输入设备。

ffmpeg -devices

Devices:
 D. = Demuxing supported
 .E = Muxing supported
 --
 D  avfoundation    AVFoundation input device
 D  lavfi           Libavfilter virtual input device
  E sdl,sdl2        SDL2 output device

通过 ffmpeg -devices 可以知道我的 Mac 的输入设备:avfoundation

查询 avfoundation 视频和音频的索引

ffmpeg -f avfoundation -list_devices true -i ""

[AVFoundation input device @ 0x7fb5b340d6c0] AVFoundation video devices:
[AVFoundation input device @ 0x7fb5b340d6c0] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7fb5b340d6c0] [1] Capture screen 0
[AVFoundation input device @ 0x7fb5b340d6c0] AVFoundation audio devices:
[AVFoundation input device @ 0x7fb5b340d6c0] [0] MacBook Pro麦克风

1.2、采集屏幕

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

这样播放 yuv 格式的原始视频是有问题的,因为没有指定视频的分辨率和视频的格式

ffplay -s 3360x2100 -pix_fmt uyvy422  out.yuv

如果 -s 不指定

[IMGUTILS @ 0x700001e58808] Picture size 0x0 is invalid
studyout.yuv: Invalid argument

如果不指定 -pix_fmt 就会出现花屏问题。

1.3、采集音频

利用 Macbook 的麦克风,采集音频数据。

ffmpeg -f avfoundation -i :0 out.wav

二、分解与复用命令

2.1、将 mp4 转化为 flv

ffmpeg -i testfile.mp4 -vcodec copy -acodec copy testfile.flv

or

ffmpeg -i testfile.mp4 -codec copy  testfile.flv

2.2、将 mp4 文件的中视频抽取出来

ffmpeg -i testfile.mp4 -vcodec copy -an testfile.flv

2.3、将 mp4 文件中的音频抽取出来

ffmpeg -i testfile.mp4 -vn -acodec copy testfile.flv

三、抽取音视频原始数据

3.1、抽取 mp4 文件的原始 yuv 视频数据

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

3.2、抽取 mp4 文件的原始 pcm 音频数据

ffmpeg -i testfile.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm

播放:

ffplay -ar 44100 -ac 2 -f s16le out.pcm

四、滤镜命令

4.1、设置声音滤镜

ffmpeg -i /Users/liaowj/Documents/media/study/Complicated.mp3  -vf volume=1 -acodec copy  volume.mp3

五、视频裁剪命令

5.1、裁剪命令

从某一个位置00:01:10位置开始裁剪一个 mp4 文件,裁剪时间 10 s。

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

5.2、合并视频命令

合并两个视频文件

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

concat

file out.mp4
file out1.mp4

六、视频与图片转换命令

6.1、将一个视频每一帧图片提取出来,fps = 1

ffmpeg -i testfile.mp4 -r 1 -f image2 foo-%03d.jpeg

6.2、将一组图片转化为一个视频文件

ffmpeg -f image2  -i foo-%03d.jpeg  out.avi
上一篇下一篇

猜你喜欢

热点阅读