ffmpeg之常用命令的学习
?
1.基本信息查詢命令
?
2.錄制命令
(1)錄制視頻(屏幕)
ffmpeg -f avfoundation -i 1 -r 30 out.yuv-
-f:指定使用avfoundation采集數據
-
-i:指定從哪兒采集數據,它是一個文件索引號
-
-r:指定幀率
錄制視頻測試
1.終端中輸入命令
ffmpeg -f avfoundation -i 1 -r 30 out.yuv?
2.錄制結束,播放錄制視頻
ffplay out.yuv會出現如下問題:
?
是因為ffplay輸入的是原始數據,不知道存的數據每一張圖的大小是多少,所以無法渲染展示。所以我們需要給他一個尺寸大小。
我們在錄制的時候有一個大小參數
?
帶上這個參數去播放視頻
ffplay -s 2560-1600 out.yuv?
但是視頻確是亂碼,沒法看。這是因為ffplay打開是按照yuv420p格式來的,而視頻錄制時的格式為uyvy422,所以需要指定視頻錄制時的格式。
ffplay -s 2560-1600 -pix_fmt uyvy422 out.yuv這時候我們就可以看到剛才錄制的視頻了
(2)錄制視頻(攝像頭)
ffmpeg -f avfoundation -list_devices true -i ""使用上述命令可以看到當前mac系統下acfoundation支持哪種設備
?
video[0]代表攝像頭,video[1]代表屏幕,autio[0]代表內置麥克風。
下面我們開始錄制攝像頭版的視頻,把-i的值改為0即可
ffmpeg -f avfoundation -i 0 -r 30 out1.yuv?
日志告訴我們 Selected framerate (29.970030) is not supported by the device ,默認的framerate 不被設備支持,下面也給出了支持的分辨率和framerate,所以我們需要改一下命令
ffmpeg -f avfoundation -video_size 640x480 -framerate 30 -i 0: -r 30 out1.yuv錄制一定時間后,結束錄制,打開剛才的視頻
ffplay -s 640*480 -pix_fmt uyvy422 out1.yuv(2)錄制音頻
ffmpeg -f avfoundation -i :0 out.wav打開剛才錄制的音頻
ffplay out.wav?
3.分解/復用命令
(1)多媒體格式轉換
ffmpeg -i out.mp3 -vcodec copy -acodec copy out.flv-
-i:輸入文件
-
-vcodec copy:視頻編碼處理方式
-
-acodec copy:音頻編碼處理方式
例如我們要將一個mp4視頻文件中的音頻提取出來
ffmpeg -i test.mp4 -vn -acodec copy test111.aac還可以將視頻文件中的視頻提取出來
ffmpeg -i test.mp4 -vcodec copy ?-an test222.h264我們可以用ffmplay打開這兩個音視頻文件
4.處理原始數據命令
(1)提取YUV數據
ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv(2)提取PCM數據
ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm這里我們提取一個mp3文件的PCM數據
ffmpeg -i /Users/apple/Music/網易云音樂/許嵩\,何婷\ -\ 素顏.mp3 -vn -ar 44100 -ac 2 -f s16le out3.pcm然后通過ffplay播放
ffplay -ar 44100 -ac 2 -f s16le out3.pcm5.裁剪與合并命令
(1)裁剪
ffmpeg -i input.mp4 -ss 00:00:00 -t 10 1.ts-
-i:需要裁剪的視頻
-
-ss:裁剪開始的時間 時:分:秒
-
-t:裁剪的時間
(2)合并
ffmpeg -f concat -i inputs.txt -c:v out.flv-
input.txt內容為需要合并的文件,格式為
file '1.ts' file '2.ts'
6.圖片/視頻互轉命令
(1)視頻轉圖片
ffmpeg -i in.flv -r 1 -f image2 image-%3d.jpeg(2)視頻轉圖片
ffmpeg -i video-frame-%3d.jpeg -c:v libx264 -vf "fps=25,format=yuv420p" out.mp47.直播相關命令
(1)直播推流
ffmpeg -re -i out.mp4 -c copy -f flv remp://server/live/streamName(2)直播拉流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv總結
以上是生活随笔為你收集整理的ffmpeg之常用命令的学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac搭建nginx+rtmp直播流
- 下一篇: 使用ffmpeg+nginx将rtmp直