日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ffmepg介绍

發布時間:2024/1/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ffmepg介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ffmepg介紹

ffmpeg是一個開放原碼的自由軟件,可以運行音頻和視頻多種格式的錄影、轉換、流功能。
具體地,ffmpeg包括一組應用程序和函數庫。

命令行應用程序

  • ffmpeg:用于對視頻文檔或音頻檔案轉換格式
  • ffplay:一個簡單的播放器,基于SDL與FFmpeg庫
  • ffprobe:用于顯示媒體文件的信息
    函數庫
  • libswresample
  • libavresample
  • libavcodec:包含全部FFmpeg音頻/視頻編解碼庫
  • libavformat:包含demuxers和muxer庫
  • libavutil:包含一些工具庫
  • libpostproc:對于視頻做前處理的庫
  • libswscale:對于影像作縮放的庫
  • libavfilter

基本語法

這里介紹ffmpeg應用程序的使用語法

ffmpeg [global_options] {[input_file_options] -i input_url} … {[output_file_options] output_url} …

ffmepg的輸入文件可以是多個(比如將視頻和音頻文件合成為一個帶有聲音的視頻),輸出文件也可以是多個(比如從視頻中截取多幀圖片)。輸入文件地址用命令-i接地址指定,沒有命令指定的地址是輸出文件地址。
ffmpeg對選項的順序敏感,選項作用于下一個指定的文件。所以,在一個命令中,可以出現多次相同的選項。例外是全局選項(global_options)必須在最前面指定。
例如,下面的命令包含兩個-r,令輸入文件的fps為1,輸出文件的fps為24。

ffmpeg -r 1 -i input.m2v -r 24 output.avi

處理流程

ffmepg的處理流程可以用下圖描述:

這里首先說明一下多媒體數據的封裝格式和編碼格式。編碼是對數據的壓縮算法,常見的編碼格式有:h264、h265、mpeg、wmv、aac 等。封裝格式也稱為容器格式,作為編碼格式的載體,將至少一個編碼格式的數據按照特定格式組織起來,并提供一些輔助功能。一個視頻文件格式可以看成一個容器,這個容器包含了如音頻軌道、視頻軌道和其他一些元數據。常見的封裝格式有mp4、mkv、avi等。

上圖中demuxer是解封裝器,muxer是封裝器,decoder是解碼器,encoder是編碼器。ffmpeg首先讀取輸入源,然后通過demuxer將音視頻包進行解封裝,這個動作通過調用libavformat中的接口即可實現;接著通過decoder進行解碼,將音視頻通過decoder解包為YUV或者PCM這樣的數據,decoder通過libavcodec中的接口即可實現;然后通過encoder將對應的數據進行編碼,編碼可以通過libavcodec中的接口實現;接下來將編碼后的音視頻數據包通過muxer進行封裝,muxer封裝通過libavformat中的接口即可實現,輸出成為輸出流。

過濾器filter

對于解碼得到的原始數據,ffmpeg可以對其進行操作,并將這些操作稱之為過濾。ffmpeg通過libavfilter中的接口進行過濾。
過濾分為兩種,簡單過濾和復雜過濾。
簡單過濾如下圖只有一個輸入輸出,可以用線性的過程來表示。

復雜過濾如下圖,不能用一個線性的過程來表示。

例子

提取帶音頻的視頻文件中的視頻流,屏蔽音頻

ffmpeg -i input.mp4 -an output.mp4

提取帶音頻的視頻文件中的音頻,屏蔽視頻

ffmpeg -i input.mp4 -vn output.aac

參考資料

ffmpeg官方文檔
wiki百科ffmpeg
https://zhuanlan.zhihu.com/p/37516093

總結

以上是生活随笔為你收集整理的ffmepg介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。