ffmpeg常用命令集錦

2021-02-14 音視頻技術充電營

在實際工作中,通常需要ffmpeg作為工具來驗證一個問題,比如播放一個視頻,提取一個碼流,轉碼視頻,轉封格式等,用的時候才發現忘記了相關命令,Google一番花老大的力氣才找到自己需要的命令行。本文總結常用的命令,並演示如何通過命令行的help用法去構建新的命令。

常用命令總結

一.採集命令

列出攝像頭設備

ffmpeg -list_devicestrue -f dshow -i dummy

列出某一個攝像頭的能力

ffmpeg -list_optionstrue -f dshow -i video=「Integrated Camera」

指定格式播放某一個設備

ffplay  -video_size 640x480 -pixel_formatyuyv422  -framerate "30"  -f dshow -i video="IntegratedCamera"

錄屏命令

ffmpeg -y -f gdigrab  -t 30 -r 25 -i desktop -vcodeclibx264 -s 1280x720 test720.mp4

詳見:https://www.jianshu.com/p/601757bd053b

二.提取視頻或音頻裸流

ffmpeg.exe  -i CCTV-2-dszg-1.mp4 -vn -y -acodec copyaudio.aac   //提取音頻

ffmpeg.exe  -i CCTV-2-dszg-1.mp4 -an -y -acodec copyvideo.h264 //提取視頻

三.轉碼和轉封

  轉碼:

ffmpeg -i test_1920x1080.mp4-acodec copy -vcodec libx264 -s 1280x720 test_1280x720.ts

轉封

ffmpeg -i test_1920x1080.mp4-acodec copy -vcodec copy -s 1280x720 test_1920x1080.flv

 

四.播放

播放編碼後或封裝後的數據

ffplay –x 800 –y 400test.mp4  –autoexit

強制某個解碼器解碼

ffplay -vcodech264_qsv  -i test.h264

播放原始數據

查看格式

ffplay -pix_fmts

播放RGB

ffplay -x 800 -y 400 -pixel_format bgra -video_size 1366x768 -irgb24_320x240.rgb

播放YUV

ffplay -x 800 -y 400 -pixel_format yuv420p -video_size 1366x768 -i capture.yuv

播放AAC

ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm

播放網絡流

ffplay –x 800 –y400  url

五.提取原始數據

提取YUV

ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p yuv420p_orig.yuv

提取RGB

ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb

提取PCM

ffmpeg -i test.mp4 -t 10 -vn -ar 48000 -ac 2 -f f32le48000_2_f32le_2.pcm

help 查詢

1基本的help查詢,可以重定向文件再查看

ffmpeg/ffplay/ffprobe–h  

ffmpeg  -h long

ffmpeg  -h full

2.查看某個一個類型支持的能力

如查看支持編解碼器

ffmpeg  -codecs

查看所支持的復用器

ffmpeg  -muxers等

3.查看具體類型所支持的參數

基本格式:ffmpeg -h type=xxx

舉例如下:

ffmpeg-h encoder=libx264

ffmpeg-h filter=atempo

後續在工作和學習中如遇到新的需求,該命令行會繼續擴充。

相關焦點

  • ffmpeg第五彈:Qt+SDL+ffmpeg視頻播放演示
    一、前言 在前幾篇文章當中,有提到過用源碼去搭建ffmpeg的命令環境開發,為啥要這樣去搭建環境,為什麼不用直接用下面這個命令在ubuntu下安裝多快,簡單又方便:sudo apt install ffmpeg
  • ffmpeg數據結構簡介
    常用的函數1、libavformatint     avformat_network_init (void)初始化網絡,直播推流、拉流或者播放在線資源會用到。AVFormatContext *     avformat_alloc_context (void)初始化AVFormatContext結構體,解復用或者打開多媒體資源的時候用到。
  • FFmpeg 時間戳詳解
    FFmepg 中有三種時間基,命令行中 tbr、tbn 和 tbc 的列印值就是這三種時間基的倒數:tbn:對應容器中的時間基。值是 AVStream.time_base 的倒數tbc:對應編解碼器中的時間基。
  • 常用windows命令
    常用windows命令Windows命令提示符(cmd.exe)是Windows  NT下的一個用於運行Windows控制臺程序或某些DOS程序的
  • linux常用命令匯總
    cd命令的常用用法也就這麼多了,歡迎補充。剛接觸的時候會比較難,但用多了之後這些都是很簡單的,關鍵是熟能生巧,多加使用。具體使用方法:rm命令為remove的簡寫,作用是刪除,參數:-f :就是force的意思,忽略不存在的文件,不會出現警告消息-i :互動模式,在刪除前會詢問用戶是否操作-r :遞歸刪除,最常用於目錄刪除,它是一個非常危險的參數常用用法:如果想把整個當前目錄下的所有文件都刪掉
  • windows 常用DOS命令
    前幾篇我們講了windows10與linux的安裝及教程今天我們講一講CMDDOS和Windows最大的不同在於DOS命令方式操作,所以使用者需要記住大量命令及其格式使用方法,DOS命令分為內部命令和外部命令, 內部命令是隨每次啟動的COMMAND.COM裝入並常駐內存,而外部命令是一條單獨的可執行文件。
  • 150個常用的Linux命令
    常用參數:-l  除文件名稱外,亦將文件型態、權限、擁有者、文件大小等資訊詳細列出。tree:以樹狀圖列出目錄中的內容。pwd:顯示當前目錄的路徑。mkdir:在當前目錄下創建子目錄。常用參數:-p  確保目錄存在,不存在則創建,創建多級目錄時會用到。rmdir:刪除空的目錄。
  • Windows常用CMD網絡命令
    我們常用的windows系統下,cmd是command的縮寫,即命令提示符(CMD),主要通過CMD網絡命令查詢系統的信息或者是判斷網絡的健康狀態
  • 常用的adb命令
    設置adb環境:將android sdk工作目錄添加到系統環境變量中,則可使用adb命令了。adb的常用命令:顯示當前連接的設備:adb devices 2.重啟設備:adb reboot 3.查看當前adb工具版本號:adb version4.安裝命令adb install C:\apk\zhihu.apk  ---為了獲取apk的安裝包所在地址,可以直接把apk拖到
  • 電腦常用命令提示符大全
    ),那麼通常都有哪些命令提示符是常用的呢?今天就給大家來講一下幾個常用的命令提示符以及其他提示符大全。首先說一下命令提示符是什麼,就是CMD命令,CMD是command的縮寫,是windows兼容DOS的命令符輸入窗口,可以通過它來進行系統服務,關開機,獲取信息等等操作,從而更好的了解和使用電腦。
  • 常用的Linux命令匯總
    ,用於複製文件,copy之意,它還可以把多個文件一次性地複製到一個目錄下-a :將文件的特性一起複製-p :連同文件的屬性一起複製,而非使用默認方式,與-a相似,常用於備份-i :若目標文件已經存在時,在覆蓋時會先詢問操作的進行-r :遞歸持續複製,用於目錄的複製行為 //經常使用遞歸複製-u :目標文件與源文件有差異時才會複製
  • Liunx 常用命令
    a開頭的目錄或文件10、文件操作命令    10.1文件的查看命令     cat :看最後一屏   格式:cat  文件 或 文件路徑     less:翻頁查看    格式:less 文件 或 文件路徑    10.2 編輯文件內容命令    vi :vi 文件或者文件路徑(打開文件,並將光標置於第一行首
  • Linux常用命令:cp
    cp命令用來複製文件或者目錄,是Linux系統中最常用的命令之一。一般情下,shell會設置一個別名,在命令行下複製文件時,如果目標文件已經存在,就會詢問是否覆蓋,不管你是否使用-i參數。但是如果是在shell腳本中執行cp時,沒有-i參數時不會詢問是否覆蓋。這說明命令行和shell腳本的執行方式有些不同。
  • Linux常用命令 & 實用命令萬字總結
    catcat,又是一個相對高頻率的命令。比較官方的說法是命令用於連結文件並列印到標準輸出設備上。這個文本輸出命令可以用來查看文件內容,創建內容等,下面我們介紹幾個比較實用的用法。命令格式 : cat [選項]... [文件]...
  • 1000+ 常用的 Linux 命令來襲
    咱言歸正傳,Linux中的命令大致分為兩類:內部命令和外部命令。內部命令也稱shell內嵌命令,這些命令是寫在bash源碼的builtins裡面的,由shell 程序識別並在 shell 程序內部完成運行,通常在 Linux 系統加載運行時 shell 就被加載並駐留在系統內存中,不需要臨時去磁碟加載命令。
  • appium---常用的adb命令
    前言     在測試android-app的時候,adb命令可以幫助我們解決許多問題什麼是adbAndroid Debug
  • Linux常用基礎命令整理:關機命令、查看目錄下文件命令等
    整理了一些Linux常用基礎命令,歡迎指正。首先記住四個熱鍵,學會這四個鍵,受益一輩子。
  • 八個常用的網絡命令ping、nbtstat、tracert、Telnet等詳細方法介紹,弄懂瞬間成大神!
    tracert命令行這個命令是網絡命令中最重要的一個,必須透徹掌握它的每一個子命令的用法,因為它的功能實在是太強大了在這裡,我們重點掌握幾個常用的子命令。net view使用此命令查看遠程主機的所以共享資源。命令格式為net view \IP。net use把遠程主機的某個共享資源影射為本地盤符,圖形界面方便使用,呵呵。
  • Linux的入門常用命令解析
    ,可以使用命令幫助。ls --help幾個常用的命令小技巧當系統執行過一些命令後,可以按 ↑↓ 鍵翻看以前的命令。已經存在同名文件或者目錄,可以使用-f 參數,強制覆蓋:[test@ubnuntu ~]$ cp -rf a c-v 參數可以顯示複製過程常用參數