基本信息查詢命令服務器
-version 顯示版本
-demuxers 顯示可用的demuxers (解封裝格式)
-muxers 顯示可用的muxers (封裝格式)
-devices 顯示可用的設備 (處理的輸入設備,如音頻設備,視頻設備)
-codecs 顯示全部編解碼器
-decoders 顯示可用的解碼器
-encoders 顯示全部的編碼器
-bsfs 顯示比特流filter
-formats 顯示可用的格式
-protocols 顯示可用的協議 (支持輸入的網絡文件格式)
-filters 顯示可用的過濾器 (各類濾鏡)
-pix_fmts 顯示可用的像素格式
-sample_fmts 顯示可用的採樣格式
-layouts 顯示 channel 名稱 (如單聲道,雙聲道,立體聲)
-colors 顯示識別的顏色名稱
複製代碼
錄製命令網絡
ffmpeg -f avfoundation -i1-r30 out.yuv
-f:指定使用 avfoundation 採集數據
-i:指定從哪開始採集數據,它是一個文件索引號 (1:是屏幕,0:是攝像頭)
-r:指定幀率
最後 out.yuv 就是輸出文件
ffplay out.yuv
播放以前錄製的視頻
錄製音頻
ffmpeg -f avfoundation -i :0 out.wav
:0 表示音頻設備
:1 麥克風
複製代碼
分解和複用命令 ide
文件格式的轉換
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
-i:輸入文件
-vcodec copy: 視頻的編碼處理方式
-acodec copy: 音頻的編碼方式
以上的命令就是將一個 mp4文件轉成 flv 格式,不改變他的音視頻編碼方式
抽取出視頻部分,不要音頻
ffmpeg -i out.mp4 -an -vcodec copy out.h264
-an: a表示音頻 ,n 意思爲 no
抽取出音頻部分,不要視頻
ffmpeg -i out.mp4 -acodec copy -vn out.aac
-vn:與 an 同理
複製代碼
處理原始數據命令編碼
提取yuv數據
ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmts yuv420p out.wav
-c:v :表示對視頻進行編碼,編碼格式爲 rawvideo
-pix_fmt : 像素格式
提取pcm數據
ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
-ar 44100 :採樣率
-ac 2 : 雙聲道
-f s16le :提取出的pcm存儲方式
複製代碼
濾鏡命令spa
ffmpeg -i in.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4
-vf : 表示視頻濾鏡
crop=in_w-200:in_h-200 : 裁剪,in_w-200 ,表示視頻自己的寬度減去200, in_h-200,表示視頻的自己高度減去200
-c:v :視頻編碼器
-c:a :音頻編碼器
複製代碼
裁剪合併命令3d
裁剪
ffmpeg -i in.mp4 -ss 00:00:00 -t 10 out.ts
-ss:從什麼時間點開始裁剪
-t :要裁剪多長時間 單位是秒
合併
ffmpeg -f concat -i inputs.txt out.flv
-f concat:合併濾鏡
-i input.txt: 這個txt裏面記錄了要合併的全部文件信息
格式爲 "file filename" ,file固定,filename 是文件名稱
複製代碼
圖片與視頻互轉命令code
視頻傳圖片
ffmpeg -i in.flv -r 1 -f image2 image-%3d.jpeg
-r 1 : -r 指定轉換圖片的幀率,1 表示每秒鐘轉出1張圖片
-f image2:轉成image2格式
圖片轉視頻
ffmpeg -i image-%3d.jpeg out.mp4
複製代碼
直播流命令orm
推流
ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName
-re :讓幀率保持同步
-c :表示音視頻
-f :推出去的文件格式
rtmp:服務器地址
拉流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
複製代碼