FFmpeg進行簡單的視頻編輯與代碼寫法實例

使用 FFmpeg 進行簡單的視頻編輯非常強大。它是一個命令行工具,雖然一開始可能看起來有點復雜,但掌握了基本命令后會非常有用。

以下是一些常見的簡單視頻編輯操作及其 FFmpeg 命令:


1. 剪切視頻

如果你想從一個視頻中剪切出一段,你需要指定開始時間 (-ss) 和持續時間 (-t),或者開始時間 (-ss) 和結束時間 (-to)。

  • 指定持續時間:

    ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -codec copy output.mp4
    
    • -i input.mp4:指定輸入文件。
    • -ss 00:01:00:從視頻的第 1 分鐘開始剪切(時:分:秒)。
    • -t 00:00:30:剪切 30 秒的持續時間。
    • -codec copy:這非常重要!它會直接復制視頻和音頻流,而無需重新編碼,這樣速度快,并且不會損失質量。
  • 指定結束時間:

    ffmpeg -i input.mp4 -ss 00:01:00 -to 00:01:30 -codec copy output.mp4
    
    • -to 00:01:30:剪切到視頻的第 1 分 30 秒。

2. 改變視頻分辨率(縮放)

如果你想改變視頻的尺寸,可以使用 -vf scale 過濾器。

ffmpeg -i input.mp4 -vf scale=1280:-1 output_720p.mp4
  • -vf scale=1280:-1:將視頻寬度設置為 1280 像素,-1 會自動計算高度以保持寬高比。你也可以指定具體的高度,例如 scale=1280:720
  • 注意: 改變分辨率需要重新編碼,這會比復制流慢。

3. 提取音頻

從視頻中提取音軌。

ffmpeg -i input.mp4 -vn output.mp3
  • -vn:表示不包含視頻流(video no)。
  • output.mp3:指定輸出的音頻文件格式。你也可以使用 .aac 或其他音頻格式。

4. 提取視頻(無音頻)

從視頻中移除音軌,只保留視頻。

ffmpeg -i input.mp4 -an -codec copy output_no_audio.mp4
  • -an:表示不包含音頻流(audio no)。
  • -codec copy:同樣,為了避免重新編碼,使用這個參數可以快速提取。

5. 合并視頻(串聯)

如果你有多個視頻片段,想把它們按順序連接起來,可以使用 FFmpeg 的 concat 解復用器或過濾器。

推薦方法:使用 Concat Demuxer (列表文件)

這種方法更快,因為不需要重新編碼。

  1. 創建一個文本文件 (例如 mylist.txt),列出你要合并的視頻文件,每個文件一行,格式如下:

    file 'input1.mp4'
    file 'input2.mp4'
    file 'input3.mp4'
    
  2. 運行 FFmpeg 命令:

    ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4
    
    • -f concat:使用 concat 解復用器。
    • -safe 0:在某些情況下可能需要,允許讀取絕對路徑或危險路徑。
    • -i mylist.txt:指定包含文件列表的文本文件。
    • -c copy:復制流,不重新編碼。
替代方法:使用 Concat 過濾器 (如果文件格式或編碼不同,或需要更復雜的處理)

如果你的視頻文件格式或編碼不同,或者你需要對視頻進行其他處理(例如調整大小),則需要使用 concat 過濾器,這會重新編碼。

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4
  • -i input1.mp4 -i input2.mp4:輸入多個文件。
  • -filter_complex:使用復雜過濾器圖。
  • [0:v][0:a][1:v][1:a]:指定輸入流 (第一個文件是 0,視頻是 v,音頻是 a)。
  • concat=n=2:v=1:a=1n=2 表示有兩個輸入文件,v=1 表示輸出一個視頻流,a=1 表示輸出一個音頻流。
  • -map "[v]" -map "[a]":映射輸出的視頻和音頻流。

6. 添加水印/疊加圖像

在視頻上疊加一個圖片(例如水印)。

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output_watermarked.mp4
  • -i watermark.png:第二個輸入是你的水印圖片。
  • -filter_complex "overlay=10:10":使用 overlay 過濾器。10:10 是水印左上角的 x 和 y 坐標,表示距離視頻左上角 10 像素。

7. 改變視頻速度

如果你想讓視頻播放得更快或更慢,可以使用 setptsatempo 過濾器。

改變視頻播放速度 (不改變音高)
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output_faster.mp4
  • setpts=0.5*PTS:將視頻播放速度加快一倍(0.5 倍持續時間)。對于減慢速度,可以使用大于 1 的值,例如 2.0*PTS 會讓視頻慢兩倍。
  • atempo=2.0:將音頻播放速度加快一倍。atempo 的值必須在 0.5 到 2.0 之間。如果你需要更快的速度,可以鏈式使用多個 atempo 過濾器(例如 atempo=2.0,atempo=2.0)。

8. 旋轉視頻

將視頻順時針旋轉 90 度。

ffmpeg -i input.mp4 -vf "transpose=1" output_rotated.mp4
  • transpose 過濾器參數:
    • 0 = 逆時針旋轉 90 度并垂直翻轉 (默認)
    • 1 = 順時針旋轉 90 度
    • 2 = 逆時針旋轉 90 度
    • 3 = 順時針旋轉 90 度并垂直翻轉

開始使用前

  1. 安裝 FFmpeg: 如果你還沒有安裝,可以訪問 FFmpeg 官方網站下載適合你操作系統的版本并進行安裝。
  2. 打開命令行/終端: 所有這些命令都在命令行界面中執行。

?熱門原創推薦

  • 無版權,全免費,請收藏這10個免費高清無權素材網站
  • 常用照片尺寸對照表,照片大小看這個表就OK了
  • 如何使用FTP上傳文件(FTP文件傳輸)
  • 在線視頻加密播放(加密視頻觀看)操作教程完整版
  • 企業公眾號菜單添加視頻的完整教程(組圖)

視頻加密與在線教育文章

  • 專業教育機構付費課程視頻如何做加密防下載防盜錄
  • 在線教學課程視頻AI智能大綱代碼與演示
  • 說說付費課程視頻加密技術以及防翻錄方法有哪些?
  • Html5Player加密視頻播放器添加ID跑馬燈的效果
  • 問答播放器(視頻彈題)使用例子(代碼)
  • 視頻自動生成字幕原理和自動生成字幕的應用實例

AI工具類文章

  • AI應用:mijdourney 如何寫prompt
  • Midjourney最基礎的一些使用設置
  • Gemini 前世今生全面的信息介紹
  • AI視頻成工具D-ID介紹(AI數字人常用工具)
  • Midjourney Prompt的使用基本結構介紹

視頻加密/防下載/防錄屏

  • 防止付費課程視頻被盜被下載的五大招數
  • 企業內訓視頻加密防盜錄全攻略
  • 視頻加密的兩種常見的方式數字版權管理和加密算法與應用

FFmpeg視頻編碼

  • 如何設置FFmpeg進行高分辨率視頻轉碼?
  • 視頻處理時的截圖工具ffmpeg截圖用法實例
  • FFmpeg視頻編碼的完整操作指南
  • FFmpeg最常用命令參數詳解及應用實例(很全值得收藏)

谷歌瀏覽器

  • Chrome提示由貴單位管理該怎么取消?
  • 關閉谷歌更新提示“若要接收后續 google chrome 更新,您需使用 windows 10或更高版本”
  • chrome谷歌瀏覽器書簽不同步的解決辦法
  • Chrome瀏覽器無痕瀏覽真的無痕嗎?
  • 關閉谷歌瀏覽器輸入框記憶功能的方法

ThinkPad電腦

  • ThinkPad系列產品進入BIOS并設置U盤啟動的詳細步驟
  • 通用的ThinkPad BIOS 設置指南(精簡版)

視頻直播

  • 企業如何做虛擬直播(綠幕摳像直播)
  • 視頻直播推流攻略(整理的各大平臺推流界面)
  • OBS直播工具使用指南/OBS推送直播視頻源到服務器的工具

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

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

相關文章

如何使用免費軟件寫論文?六個免費論文生成軟件使用指南

在學術寫作中,利用AI技術和免費的寫作工具可以極大地提高效率,尤其對于需要處理大量文獻、結構化寫作的論文來說,使用合適的軟件能節省時間,提升論文質量。這里為您推薦六個免費的論文生成軟件,并提供使用指南&#xf…

大數據系統架構實踐(二):Hadoop集群部署

大數據系統架構實踐(二):Hadoop集群部署 文章目錄 大數據系統架構實踐(二):Hadoop集群部署一、Hadoop簡介二、部署前準備三、部署Hadoop集群1. 下載并解壓安裝包2. 配置hadoop-env.sh3. 配置core-site.xml4…

42道Maven高頻題整理(附答案背誦版)

1.簡述什么是Maven? Maven是一個項目管理和構建自動化工具,主要服務于Java項目。使用Maven,開發者可以方便地管理項目的構建、文檔生成、報告、依賴、SCM(軟件配置管理)、發布和分發等過程。 Maven的核心概念是基于項…

【數字后端】- 如何進行時鐘樹綜合?

首先,要明確的是,時鐘樹綜合只有命令去操作這一種方式 CTS的步驟 1、時鐘樹綜合前的準備工作-設置時鐘樹cell(每個項目必做) 最簡單的項目要設置生長時鐘樹時可用的clock buffer和clock inverter cell list,如下 此…

OpenCV CUDA模塊設備層-----像素值進行逐通道的最大值比較函數max()

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 是 OpenCV 的 CUDA 模塊(cv::cudev) 中的一個 設備端內聯函數(device function),用于…

SCSAI萬物對象模型和五維市場交易平臺原型

一個完整的工業軟件對象模型平臺,基于SCSAI對象模型和五維市場理論。該平臺包含對象管理、五維市場交易和大模型集成功能。 工業軟件對象模型平臺功能說明 這個平臺實現了基于Aras Innovator對象模型和五維市場理論的工業軟件解決方案,主要功能包括&…

昇騰のPrefix Cache

Prefix Cache特性介紹 Prefix Cache 即前綴緩存,是一種用于優化大語言模型(LLM)推理性能的技術,主要應用于多輪對話、系統提示等具有大量共同前綴的場景。 原理 LLM 推理計算主要包括 Prefill 階段(Prompt 計算&…

12-C#的list數據使用

C#的list數據使用 1.實例化 List<double> lst1 new List<double>();2.數據清除 lst1 .Clear();3.數據清除

SQL數據遷移利器:INSERT INTO SELECT語句詳解

引言 在數據庫操作中&#xff0c;我們經常需要將一個表中的數據遷移或復制到另一個表中。這時候&#xff0c;INSERT INTO SELECT語句就成為了一個極其有用的工具。今天我們就來深入探討這個強大的SQL語句。 基本語法 INSERT INTO 目標表(字段1, 字段2, ...) SELECT 字段1, 字…

elementUI輪播圖組件el-carousel適配移動端大小(圖片加載好后根據大小適配)

獲取img實例&#xff0c;動態設置el-carousel高度 <template><div class"content main"><el-carousel arrow"always" :height"bannerHeight px"><el-carousel-item v-for"(item, index) in banners" :key"…

AI歌手Yuri出道:GenAI,透露著新的AI產業機遇?

名人說&#xff1a;博觀而約取&#xff0c;厚積而薄發。——蘇軾《稼說送張琥》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 目錄 一、AI歌手Yuri橫空出世1. 爆紅的原生MV《SURREAL》2. 背后的創作團隊 二、AI歌手背…

常見的自動化測試工具,好學嗎?

自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。它通常涉及預設測試用例&#xff0c;并通過自動化工具或腳本來執行這些用例&#xff0c;最后比較實際結果與期望結果來評估軟件的正確性。 常見的自動化測試工具包括Selenium、Appium、JMeter、LoadRunner、Post…

JavaEE初階第四期:解鎖多線程,從 “單車道” 到 “高速公路” 的編程升級(二)

專欄&#xff1a;JavaEE初階起飛計劃 個人主頁&#xff1a;手握風云 目錄 一、Thread類及常用方法 2.1. Thread的常見構造方法 2.2. Thread的常見屬性 2.3. 啟動一個線程 2.4. 中斷一個線程 2.5. 等待一個線程 2.6. 休眠當前線程 一、Thread類及常用方法 2.1. Thread的…

elk+filebeat收集springboot項目日志

目錄 步驟 1: 安裝和配置Elasticsearch 步驟 2: 安裝和配置Logstash&#xff08;可選&#xff09; 步驟 3: 安裝和配置Filebeat 步驟 4: 安裝和配置Kibana 要使用ELK&#xff08;Elasticsearch, Logstash, Kibana&#xff09;堆棧和Filebeat來收集Spring Boot項目的日志&am…

基于Python實現(控制臺)UDP傳輸協議的可靠文件傳輸工具

LFTP Design 簡介 LFTP是一個采用python3實現的基于UDP傳輸協議的可靠文件傳輸工具 特點 基于UDP 采用python3編程語言&#xff0c;socket的類型均為socket(AF_INET,SOCK_DGRAM)實現 實現100%可靠性傳輸 使用SR&#xff08;選擇重傳&#xff09;協議保證所有報文都正確接收…

【Go-7】面向對象編程

7. 面向對象編程 面向對象編程&#xff08;Object-Oriented Programming&#xff0c;簡稱OOP&#xff09;是一種編程范式&#xff0c;通過將數據和行為封裝在對象中&#xff0c;以提高代碼的可重用性、可維護性和擴展性。雖然Go語言不像傳統的OOP語言&#xff08;如Java、C&am…

PHP語法基礎篇(六):數組

PHP 中的數組實際上是一個有序映射。映射是一種把 values 關聯到 keys 的類型。此類型針對多種不同用途進行了優化&#xff1b;它可以被視為數組、列表&#xff08;向量&#xff09;、哈希表&#xff08;映射的實現&#xff09;、字典、集合、堆棧、隊列等等。本篇文章將記錄數…

GitHub Actions 的深度解析與概念介紹

GitHub Actions 核心定義 Git Actions 是 GitHub 原生提供的 自動化工作流引擎&#xff0c;允許開發者在代碼倉庫中直接創建、測試、部署代碼。其本質是通過事件驅動&#xff08;Event-Driven&#xff09;的自動化管道&#xff0c;將軟件開發中的重復任務抽象為可編排的流程。…

TestCafe 全解析:免費開源的 E2E 測試解決方案實戰指南

在2025年的數字化浪潮中&#xff0c;Web應用的穩定性和用戶體驗成為企業競爭的關鍵&#xff0c;而端到端&#xff08;E2E&#xff09;測試則是確保質量的“守護者”&#xff01;想象一下&#xff0c;您的電商平臺因表單錯誤導致用戶流失&#xff0c;或者支付流程因瀏覽器兼容性…

[CVPR 2025] 高效無監督Prompt與偏好對齊驅動的半監督醫學分割

CVPR 2025 | 優化SAM&#xff1a;高效無監督Prompt與偏好對齊驅動的半監督醫學分割 論文信息 標題&#xff1a;Enhancing SAM with Efficient Prompting and Preference Optimization for Semi-supervised Medical Image Segmentation作者&#xff1a;Aishik Konwer, Zhijian…