FFMEPG常見命令查詢

基本參數

表格1:主要參數

參數說明
-i設定輸入流
-f設定輸出格式(format) 高于后綴名
-ss開始時間
-t時間長度
codec編解碼

表格2:音頻參數

參數說明
-aframes設置要輸出的音頻幀數
-f音頻幀深度
-b:a音頻碼率
-ar設定采樣率
-ac設定聲音的Channel數
-acodec設定聲音編解碼器,如果用copy表示原封不動的復制音頻流
-an不處理音頻
-af音頻過濾器

表格3:視頻參數

參數說明
-pix_fmt提取像素格式
-vframes設置要輸出的視頻幀數
-framerate視頻幀率(更多用于與 FFmpeg 的過濾器配合使用,特別是在處理視頻時需要指定幀率的場景。)
r顯式地設置輸出視頻的幀率
-b設定視頻碼率
-s指定視頻分辨率->直接處理原始視頻幀或圖像序列
video_size某些特定的 FFmpeg 過濾器或輸出格式中更常見,尤其是在處理封裝格式(如 MP4、AVI 等)時。
-b:v視頻碼率
-vn不處理視頻
-aspectaspect 設置橫縱比 4:3 16:9 或 1.3333 1.7777
-vcodec設定視頻編解碼器,如果用copy表示原封不動的復制視頻流
-vf視頻過濾器
-vbsf用于指定視頻比特流過濾器(video bitstream filter)。比特流過濾器主要用于在不進行實際解碼和重新編碼的情況下對視頻數據流進行處理和修改。這可以包括修復損壞的數據流、重新組織數據包、或者執行其他比特流級別的操作。

實戰基本參數

提取音視頻

  • 保留封裝格式
    • 音頻
      ffmpeg -i .\test.mp4 -acodec copy -vn audio.mp4

注解:只有音頻 視頻顯示波形

    • 視頻
      ffmpeg -i .\test.mp4 -vcodec copy -an video.mp4

無聲音

  • 提取視頻()

第一要查看輸入視頻的編解碼協議
第二要查看編解碼協議的編解碼器
ffmpeg -codecs |findstr h264(windows 系統)一般最右邊括號里面選一個就行 一般第一個
ffmpeg -codecs |grep h264(linuxs系統)

    • 保留格式(查看編碼)
      ffmpeg -i .\test.mp4 -vcodec copy -an test_copy.h264
    • 強制格式(改變編碼)
      ffmpeg -i .\test.mp4 -vcodec libx264 -an test.h264
    • 音頻
    • 保留格式
      ffmpeg -i .\test.mp4 -acodec copy -vn test_copy.aac
    • 強制格式
      ffmpeg -i .\test.mp4 -acodec aac -vn test.aac

封裝命令

  • 保持編碼格式
    ffmpeg -i test.mp4 -codec copy test_copy2.ts
  • 改變編碼格式
    ffmpeg -i test.mp4 -vcodec libx265 -acodec libmp3lame out_h265_mp3.mkv
    -修改幀率
    ffmpeg -i test.mp4 -r 15 output2.mp4
    -修改視頻碼率
    ffmpeg -i test.mp4 -b:v 400k output_bvflv
  • 修改音頻碼率:
    ffmpeg -i test.mp4 -b:a 192k output_ba.mp4
  • 修改音視頻碼率:
    ffmpeg -i test.mp4 -b:v 400k -b:a 192k output_bva.mp4
    修改視頻分辨率:
  • ffmpeg -i test.mp4 -s 480x270 output_480x270.mp4
    修改音頻采樣率:
  • ffmpeg -i test.mp4 -ar 44100 output_44100hz.mp4

一個視頻質量由碼率 分辨 幀數決定 音頻為 音頻采樣率(一般由決定音頻幀) 音頻碼率 音頻深度(分辨率) 通道數

提取和播放數據

提取YUV
  • 提取3秒數據,分辨率轉為320x240
    ffmpeg -i test.mp4 -t 3 -pix_fmt yuv420p -s 320x240 yuv420p_320x240.yuv
提取RGB
  • 提取3秒數據,分辨率轉為320x240
    ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb
提取PCM

ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f s16le 48000_2_f16le.pcm

RGB和YUV之間的轉換

ffmpeg -s 320x240 -pix_fmt yuv420p -i yuv420p_320x240.yuv -pix_fmt rgb24 rgb24_320x240_2.rgb

播放YUV數據

ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv

播放RGB數據

ffplay -pixel_format rgb24 -video_size 320x240 -framerate 5 -i rgb24_320x240.rgb

播放PCM數據

ffplay -ar 48000 -ac 2 -f s32le 48000_2_s32le.pcm

過濾器參數

裁剪和拼接 (推薦用ts格式)

ffmpeg -i 1.mp4 -codec copy -vbsf h264_mp4toannexb 1.ts
ffmpeg -i 2.mp4 -codec copy -vbsf h264_mp4toannexb 2.ts
ffmpeg -i 3.mp4 -codec copy -vbsf h264_mp4toannexb 3.ts

  • 拼接(用字符串)
    (1)ffmpeg -i "concat:1.ts|2.ts|3.ts" -codec copy out_ts.mp4
    (2)ffmpeg -f concat -i list.txt -codec copy out_ts2.mp4
    這個txt文件為

file ‘1.ts’
file ‘2.ts’
file ‘3.ts’

對于音視頻參數不一樣的情況

視頻分辨率可以不同,但是編碼格式需要統一。
音頻編碼格式需要統一,音頻參數(采樣率/聲道等)也需要統一。

圖片和視頻
  • 單獨幀情況(關于動圖 后綴名你設置)
    ffmpeg -i test.mp4 -y -f image2 -ss 00:00:02 -vframes 1 -s 640x360 test.jpg

-i:指定輸入文件。
-y:覆蓋輸出文件。
-f image2:指定輸出格式為圖片。
-ss:指定起始時間(00:00:02 表示從視頻的第2秒開始)。
-vframes 1:指定截取1幀。
-s:指定輸出圖片的分辨率(640x360)

    • (關于動圖 后綴名你設置)
      你得額外指定-t -r 后綴名為.git
      ffmpeg -i test.mp4 -t 5 -s 640x360 -r 15 test.gif
  • 多幀
    ffmpeg -i test.mp4 -t 5 -s 640x360 -r 15 frame%03d.jpg

-t 5:指定處理視頻的時長(5秒)(持續時長)。不指定 就是整個視頻
-s 640x360:指定輸出圖片的分辨率。
-r 15:指定幀率(每秒15幀)。
frame%03d.jpg:指定輸出文件名格式,%03d 表示幀編號,從001開始 C語言的風格

  • 多幀轉為圖片
    ffmpeg -f image2 -i frame%03d.jpg -r 25 video.mp4

-f image2:指定輸入格式為圖片序列。

圖片裁剪

基本語法:crop=ow:oh:x:y :keep_aspect

ow(output width):指定輸出視頻的寬度。
oh(output height):指定輸出視頻的高度。
x:裁剪區域左上角的 X 坐標(相對于輸入視頻的左上角)。
y:裁剪區域左上角的 Y 坐標(相對于輸入視頻的左上角)。
keep_aspect 是一個可選參數,用于保持原始視頻的寬高比。
ffmpeg -i input.mp4 -filter:v "crop=640:360:640:360" output.mp4
這個命令會從原始視頻的中間位置(640, 360)開始裁剪出一個 640x360 的視頻區域。

文字水印
  • ffmpeg -i input.mp4 -vf "drawtext=fontsize=100/fontfile=FreeSerif.ttf/text='hello world'/fontcolor=green:box=1:boxcolor=yellow"

-i input.mp4:指定輸入文件是 input.mp4。
-vf:指定對視頻幀應用的視頻濾鏡(video filter)。
drawtext=fontsize=100:設置文本水印的字體大小為 100。
fontfile=FreeSerif.ttf:指定用于文本水印的字體文件是 FreeSerif.ttf。這個字體文件需要在你的系統中可用,或者提供它的完整路徑。
text=‘hello world’:設置文本水印的內容為 ‘hello world’。
fontcolor=green:設置文本水印的顏色為綠色。
box=1:指定為文本水印繪制一個邊框。
boxcolor=yellow:設置文本水印邊框的顏色為黃色。

圖片水印

ffmpeg -i input.mp4 -vf "movie=logo.png[watermark];[in][watermark] overlay=10:10[out]" output.mp4

-i input.mp4:指定輸入文件為 input.mp4。
-vf:指定對視頻幀應用的視頻濾鏡鏈。
movie=logo.png[watermark]:加載名為 logo.png 的圖片文件,并將其引用名稱設置為 watermark。
[in][watermark] overlay=10:10[out]:
[in]:表示輸入視頻流。
[watermark]:表示加載的圖片水印。
overlay:指定將水印疊加到視頻流上。
=10:10:設置水印的起始位置,x 坐標為 10,y 坐標為 10。
[out]:指定疊加后的視頻流名稱。

ffplay -i input.mp4 -vf " movie=logo.png[watermark];[in][watermark]overlay=x=mod(50*t\,main_w):y=abs(sin(t))*0.7[out]"

movie=logo.png[watermark]:加載 logo.png 圖片文件,并將其引用名稱設置為 watermark。
[in][watermark]overlay=x=mod(50t,main_w):y=abs(sin(t))0.7[out]:
in:表示輸入視頻流。
watermark:表示上面加載的圖片水印。
overlay:將水印圖片疊加到視頻流上。
x=mod(50
t,main_w):設置水印的 x 坐標,使其在視頻寬度內按時間 t (以秒為單位)進行周期性移動。mod(50
t,main_w) 表示水印每 50 秒移動一個視頻寬度的距離。
y=abs(sin(t))*0.7:設置水印的 y 坐標,使其根據正弦函數 sin(t) 的值在視頻高度的 0.7 倍范圍內上下波動。
out:指定疊加后的輸出視頻流。

  • 畫中畫
    ffplay -i input.mp4 -vf "movie=sub_320x240.mp4[sub];[in][sub]overlay=x=20:y=20[out]"

-i input.mp4:指定輸入文件是 input.mp4。
-vf:指定對視頻幀應用的視頻濾鏡鏈(video filtergraph)。
movie=sub_320x240.mp4[sub]:加載名為 sub_320x240.mp4 的視頻文件,并將其引用名稱設置為 sub。這個子視頻將被用作水印或覆蓋層。
[in][sub]overlay=x=20:y=20:將輸入視頻流([in])和子視頻流([sub])進行疊加(overlay)。x=20 和 y=20 參數指定了子視頻在主視頻上的起始位置,即子視頻左上角的 x 坐標為 20,y 坐標為 20。
[out]:指定疊加后的視頻流名稱,用于輸出。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75247.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java-對比兩組對象找出發生變化的字段工具-支持枚舉映射-支持時間-支持顯示對應字段中文描述-嵌套list等場景

實體字段比較器(對比兩組對象找出發生變化的字段工具類開發) 支持枚舉映射 支持時間 支持顯示對應字段中文描述 支持嵌套list等場景 下載地址: Java-對比兩組對象找出發生變化的字段工具-支持枚舉映射-支持時間-支持顯示對應字段中文描述-嵌…

15. git push

基本概述 git push 的作用是:把本地分支的提交推送到遠程倉庫。推送分支需要滿足快進規則(Fast-Forward),即遠程分支的最新提交必須是本地分支的直接祖先,這個是通過哈希值值進行判斷的。 基本用法 1.完整格式 git…

訓練數據清洗(文本/音頻/視頻)

多數據格式的清洗方法 以下是針對多數據格式清洗方法的系統性總結,結合Python代碼示例: 一、數據清洗方法總覽(表格對比) 數據類型核心挑戰關鍵步驟常用Python工具文本非結構化噪聲去噪→分詞→標準化→向量化NLTK, SpaCy, Jie…

Python標準庫json完全指南:高效處理JSON數據

一、json庫概述 JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,Python的json模塊提供了JSON數據的編碼和解碼功能。該模塊可以將Python對象轉換為JSON字符串(序列化),也可以將JSON字符串轉換為Python對象&#xf…

微軟推出首款量子計算芯片Majorana 1

全球首款拓撲架構量子芯片問世,2025年2月20日,經過近20年研究,微軟推出了首款量子計算芯片Majorana 1,其宣傳視頻如本文末尾所示。 微軟表示,開發Majorana 1需要創造一種全新的物質狀態,即所謂的“拓撲體”…

【QT】QT中的文件IO

QT中的文件IO 一、有關文件IO的類二、步驟1、定義QFile的對象,與要讀寫的文件綁定在一起2、打開文件3、讀寫文件1)讀取文件2)寫入文件 4、關閉文件5、示例代碼: 三、QString和QByteArray之間的轉換1、方法2、示例代碼: 四、QFileI…

Nginx 499 錯誤的原因及解決方法

Nginx 499 錯誤的原因及解決方法 原因 客戶端超時: 客戶端在等待服務器響應時超時,導致連接被關閉。 解決方法:優化服務端響應時間,或調大客戶端的連接超時時間。 服務端響應過慢: 后端服務處理請求時間過長。 解決方法…

Smith-Waterman 算法(C++實現)

本文實現Smith-Waterman 算法案例,用于局部序列比對。該算法是生物信息學中用于尋找兩個 DNA、RNA 或蛋白質序列之間最優局部比對的經典算法,廣泛應用于序列相似性分析和功能預測。 問題描述 給定兩個生物序列 seq1 和 seq2,如何找到它們的最…

安卓玩機工具-----安卓機型通用 無損備份與恢復數據的工具BackupToolkit 操作過程

常規安卓機型數據備份與恢復的方法及工具 安卓設備的數據備份與恢復是保護個人數據的重要手段之一。以下是幾種常用的方法和工具: 方法一:利用內置的云服務進行備份 許多安卓設備提供了內置的云服務,例如華為手機可以通過“華為云空間”來…

oracle 動態性能視圖

Oracle 數據庫中的 V$SQLAREA 是一個動態性能視圖(Dynamic Performance View),用于記錄共享池(Shared Pool)中所有 SQL 語句的統計信息。每個 SQL 語句在共享池中存儲為一個游標(Cursor)&#x…

OceanBase V4.3.5 上線全文索引功能,讓數據檢索更高效

近日,OceanBase 4.3.5 BP1 版本正式推出了企業級全文索引功能。該版本在中文分詞、查詢效率及混合檢索能力上進行了全面提升。經過自然語言模式和布爾模式在不同場景下的對比測試,OceanBase 的全文索引性能明顯優于 MySQL。 點擊下載 OceanBase 社區版…

海康攝像頭AI報警、移動偵測報警等通過Ehome/ISUP協議上報到LiveNVR流媒體平臺時如何進行報警配置

海康攝像頭AI報警、移動偵測報警等通過Ehome/ISUP協議上報到LiveNVR流媒體平臺時如何進行報警配置 1、LiveNVR介紹2、如何配置海康攝像頭、錄像機通過Ehome/ISUP注冊到LiveNVR設備 EHOME 接入配置示例設備 ISUP 接入配置示例直播流接入類型 海康ISUP海康 ISUP 設備ID啟用保存 3…

golang gmp模型分析

思維導圖: 1. 發展過程 思維導圖: 在單機時代是沒有多線程、多進程、協程這些概念的。早期的操作系統都是順序執行 單進程的缺點有: 單一執行流程、計算機只能一個任務一個任務進行處理進程阻塞所帶來的CPU時間的浪費 處于對CPU資源的利用&…

Redis基礎指令(Windows)

1.cmd命令行啟動redis 直接cmd打開整個文件 1.1.啟動server 輸入指令: redis-server.exe redis.windows.conf 會進入serve端 1.2.啟動客戶端 !!重新打開一個cmd,方法和上面一樣!! 之后輸入 redis-…

vue:前端預覽 / chrome瀏覽器設置 / <iframe> 方法預覽 doc、pdf / vue-pdf 預覽pdf

一、本文目標 <iframe> 方法預覽 pdf 、word vue-pdf 預覽pdf 二、<iframe> 方法 2.1、iframe 方法預覽需要 瀏覽器 設置為&#xff1a; chrome&#xff1a;設置-隱私設置和安全性-網站設置-更多內容設置-PDF文檔 瀏覽器訪問&#xff1a; chrome://settings/co…

【C++游戲引擎開發】第11篇:GLFW、GLAD環境搭建與第一個三角形渲染

一、GLFW、GLAD安裝 1.1 vcpkg安裝相關庫 跨平臺C++包管理利器vcpkg完全指南 # 安裝GLFW vcpkg install glfw3# 安裝GLAD vcpkg install glad1.2 初始測試代碼 #include <glad/glad.h> #include <GLFW/glfw3.h> int main() {glfwInit();GLFWwindow* window = g…

西門子S7-1500與S7-200SMART通訊全攻略:從基礎配置到遠程IO集成

以下是一篇關于西門子S7-1500與S7-200SMART通訊的詳細教程&#xff0c;包含遠程IO模塊的配置方法&#xff0c;適用于工業自動化場景的博客發布&#xff1a; 西門子S7-1500與S7-200SMART通訊全攻略&#xff1a;從基礎配置到遠程IO集成 一、硬件與軟件準備 硬件設備 主站&#x…

前端性能優化的全方位方案【待進一步結合項目】

以下是前端性能優化的全方位方案,結合代碼配置和最佳實踐,涵蓋從代碼編寫到部署的全流程優化: 一、代碼層面優化 1. HTML結構優化 <!-- 語義化標簽減少嵌套 --> <header><nav>...</nav> </header> <main><article>...</arti…

前端快速入門——JavaScript變量、控制語句

1.JavaScript 定義 JavaScript 簡稱 JS. JavaScript 是一種輕量級、解釋型、面向對象的腳本語言。它主要被設計用于在網頁上實現動態效果&#xff0c;增加用戶與網頁的交互性。 作為一種客戶端腳本語言&#xff0c;JavaScript 可以直接嵌入 HTML&#xff0c;并在瀏覽器中執行。…

GitHub 趨勢日報 (2025年04月01日)

GitHub 趨勢日報 (2025年04月01日) 本日報由 TrendForge 系統生成 https://trendforge.devlive.org/ &#x1f4c8; 今日整體趨勢 Top 10 排名項目名稱項目描述今日獲星語言1punkpeye/awesome-mcp-serversA collection of MCP servers.? 3280未指定2th-ch/youtube-musicYouTu…