一棚赔、錄制命令
1.1单寂、獲取支持的設(shè)備
要錄制屏幕拼苍,首先要知道當(dāng)前筆記本支持的輸入設(shè)備笑诅。
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 的輸入設(shè)備: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麥克風(fēng)
1.2、采集屏幕
ffmpeg -f avfoundation -i 1: -r 30 out.yuv
- -f 指定從哪里采集數(shù)據(jù) avfoundation
- -i 1 表示從屏幕獲取數(shù)據(jù)疮鲫,0 表示從攝像頭獲取數(shù)據(jù)
- -r 表示視頻的幀率
- 播放采集視頻數(shù)據(jù)
ffplay out.yuv
這樣播放 yuv 格式的原始視頻是有問題的吆你,因為沒有指定視頻的分辨率
和視頻的格式
ffplay -s 3360x2100 -pix_fmt uyvy422 out.yuv
- -s 表示視頻的分辨率。
如果 -s 不指定
[IMGUTILS @ 0x700001e58808] Picture size 0x0 is invalid
studyout.yuv: Invalid argument
如果不指定 -pix_fmt
就會出現(xiàn)花屏問題棚点。
- -pix_fmt 表示視頻的格式
1.3早处、采集音頻
利用 Macbook 的麥克風(fēng),采集音頻數(shù)據(jù)瘫析。
ffmpeg -f avfoundation -i :0 out.wav
- -f 指定從哪里采集數(shù)據(jù) avfoundation
- -i 指定 avfoundation 的索引砌梆,在 : 前面表示視頻索引,在 : 后面表示音頻索引
二贬循、分解與復(fù)用命令
2.1咸包、將 mp4 轉(zhuǎn)化為 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
- -an 表示阻止文件的所有音頻流
- -an 表示阻止文件的所有視頻流
- -acodec 設(shè)置音頻編解碼器烂瘫, copy 表示
- -vcodec 設(shè)置視頻編解碼器
- -c 表示編解碼器,包括音視頻編解碼器
三奇适、抽取音視頻原始數(shù)據(jù)
3.1坟比、抽取 mp4 文件的原始 yuv 視頻數(shù)據(jù)
ffmpeg -i testfile.mp4 -an -codec:v rawvideo -pix_fmt yuv420p out.yuv
- -codec:v 指定視頻編解碼器 rawvideo 表示原始視頻數(shù)據(jù)
- -codec:a 指定音頻編解碼器
3.2、抽取 mp4 文件的原始 pcm 音頻數(shù)據(jù)
ffmpeg -i testfile.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
- -ar 指定采樣率
- -ac 指定通道數(shù)
- -f 指定數(shù)據(jù)格式 s16le 有符號嚷往,16字節(jié)葛账,little end
播放:
ffplay -ar 44100 -ac 2 -f s16le out.pcm
四、濾鏡命令
4.1皮仁、設(shè)置聲音濾鏡
ffmpeg -i /Users/liaowj/Documents/media/study/Complicated.mp3 -vf volume=1 -acodec copy volume.mp3
- -vf 表示視頻濾鏡
五籍琳、視頻裁剪命令
5.1菲宴、裁剪命令
從某一個位置00:01:10位置開始裁剪一個 mp4 文件,裁剪時間 10 s趋急。
ffmpeg -i haha.mp4 -ss 00:01:10 -t 10 out.ts
- -t 表示限制從輸入文件讀取數(shù)據(jù)的時長喝峦,單位為 s。
- -ss 表示拖動到某一個時間位置呜达,格式為:12:03:45
5.2谣蠢、合并視頻命令
合并兩個視頻文件
ffmpeg -f concat -i input.txt out.mp4
- -f 指定輸入或輸出的file format,concat 是 format 的其中一種
-i 指定數(shù)據(jù)的數(shù)據(jù)源
input.txt 指定了兩個文件的路徑查近,格式為 file absolutefilepath
file out.mp4
file out1.mp4
六漩怎、視頻與圖片轉(zhuǎn)換命令
6.1、將一個視頻每一幀圖片提取出來嗦嗡,fps = 1
ffmpeg -i testfile.mp4 -r 1 -f image2 foo-%03d.jpeg
- -r 1s 為一幀
- -f 指定輸出文件的格式為 image2
6.2、將一組圖片轉(zhuǎn)化為一個視頻文件
ffmpeg -f image2 -i foo-%03d.jpeg out.avi