<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          FFmpeg — 應(yīng)用程序中強(qiáng)大的視頻音頻助手

          共 6983字,需瀏覽 14分鐘

           ·

          2021-09-23 19:18

          點(diǎn)擊下方AI算法與圖像處理”,一起進(jìn)步!

          重磅干貨,第一時間送達(dá)

          目錄
          1. 什么是FFmpeg?
          2. 人們?yōu)槭裁词褂?FFmpeg?
          3. 如何在 Windows、Ubuntu 和 macOS 中設(shè)置 FFmpeg。
          4. FFmpeg 中提供了用于媒體操作的庫。
          5. FFmpeg 為命令行應(yīng)用程序提供的工具。
          6. FFprobe 和 FFplay 的用法和示例。

          什么是FFmpeg?

          這個名字的靈感來自 MPEG,意思是運(yùn)動圖像專家組。FF 的意思是快進(jìn)。
          MPEG 組是制定當(dāng)今許多基本視頻標(biāo)準(zhǔn)(包括我們都熟悉的 MP4 格式)背后的工作組聯(lián)盟。

          人們?yōu)槭裁词褂?FFmpeg?

          它通常被稱為媒體轉(zhuǎn)碼或流媒體的瑞士軍刀。我們可以使用 FFmpeg 來執(zhí)行很多功能。代碼是用 C 語言編寫的,并針對最佳性能進(jìn)行了優(yōu)化。它的命令很容易運(yùn)行。一旦你熟悉了這些概念,就可以非常靈活地使用所有過濾器和選項(xiàng)來滿足你的需求。
          FFmpeg 支持廣泛的代碼、格式、設(shè)備和協(xié)議,這使其成為轉(zhuǎn)碼引擎的理想選擇。與許多已停產(chǎn)的項(xiàng)目不同,20 多年來它仍在積極開發(fā) 。有一個龐大的開發(fā)人員、用戶和貢獻(xiàn)者社區(qū),他們不斷開發(fā)新功能和修復(fù)程序。
          FFmpeg 已被用于 YouTube 和 iTunes 等視頻平臺的核心處理。我們大多數(shù)人都使用像 VLC 這樣的媒體播放器來播放視頻文件。VLC 使用 FFmpeg 庫作為其核心。一些視頻編輯器和移動應(yīng)用程序也在幕后使用 FFmpeg。

          在 Windows、Ubuntu 和 macOS 中設(shè)置 FFmpeg

          在設(shè)置 FFmpeg 之前,你需要了解一些事項(xiàng)。沒有任何操作系統(tǒng)的官方版本。但它是一個開源項(xiàng)目,你可以從互聯(lián)網(wǎng)上獲取 FFmpeg 源代碼。因此,你可以選擇從源代碼自己構(gòu)建它。
          你可以在此處(https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2)下載當(dāng)前源代碼的快照,或者從他們的git 存儲庫中(https://github.com/FFmpeg/FFmpeg.git)獲取并按照說明將其編譯到你的機(jī)器上。這可能有點(diǎn)復(fù)雜和耗時,并且可能需要你了解和選擇一些配置選項(xiàng)。首先可能還需要安裝額外的工具和編譯器。因此,除非你有充分的理由自己構(gòu)建它,否則你可能不想走這條路。
          相反,你可以選擇為你的操作系統(tǒng)下載并安裝預(yù)構(gòu)建的 FFmpeg 包。有兩種方法可以設(shè)置這些預(yù)構(gòu)建二進(jìn)制文件。如果你有像 Ubuntu 中的 APT 和 macOS 中的 Homebrew 這樣的包管理器,它會更容易使用,因?yàn)樗?fù)責(zé)下載 FFmpeg 及其依賴項(xiàng)。
          讓我們選擇最簡單的開始方式。以下過程顯示了如何使用預(yù)構(gòu)建包進(jìn)行設(shè)置。

          蘋果系統(tǒng)

          在 macOS 上,安裝 FFmpeg 的最簡單方法是使用 Homebrew。
          確保你在 macOS 中安裝了 Homebrew,或者你可以按照有關(guān)如何安裝 Homebrew 的教程進(jìn)行操作:https://brew.sh/
          在這種情況下,我們使用的是 macOS 11.4。
          • 打開終端并輸入brew?—?version。如果 Homebrew 安裝成功,你應(yīng)該會在終端中看到 brew 版本。
          macOS 中的 brew 版本
          • 對于 x86 架構(gòu)的 macOS,請使用命令brew install ffmpeg,而對于 M1,請使用命令aarch arm64 brew install ffmpeg。
          下載并安裝必要的依賴項(xiàng)
          • 安裝完成后,你可以在終端輸入ffmpeg -version。如果打印出 FFmpeg 版本,則表示 FFmpeg 安裝成功。

          Windows

          與 Ubuntu 上的 APT 和 macOS 上的 Homebrew 不同,Windows 上沒有可以用來快速安裝 FFmpeg的包管理器。
          對于 Windows,你需要手動關(guān)閉并設(shè)置它。
          可以在此處(https://www.gyan.dev/ffmpeg/builds/)找到 4 個 Windows FFmpeg 構(gòu)建變體:
          1. git full – 從具有大量庫的主分支構(gòu)建。
          2. git essentials – 從帶有常用庫的主分支構(gòu)建。
          3. release full – 從具有大量庫的最新版本分支構(gòu)建。
          4. release essentials – 使用常用庫從最新版本分支構(gòu)建。
          在我們的案例中,我們將使用 FFmpeg 發(fā)布版。
          • 在此處下載 FFmpeg 發(fā)布版:https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
          • 將文件解壓縮到將來要使用它們的地方。就我而言,我將它們放在我的 E盤中。
          • 里面的bin文件夾包含這些可執(zhí)行文件。
          • bin文件夾添加到Windows環(huán)境路徑變量中,這樣我們就可以運(yùn)行這個工具而不必每次都指定完整路徑。在搜索欄中搜索環(huán)境變量,然后單擊環(huán)境變量。
          • 單擊用戶變量中的路徑,單擊新建,并粘貼bin的完整路徑文件夾。
          • 打開命令提示符并鍵入ffmpeg -version. 如果你看到打印出 FFmpeg 版本,則表示 FFmpeg 安裝成功。我們還可以檢查ffprob -versionffplay -version

          FFmpeg 庫

          FFmpeg 有幾個有價值的庫,你可以直接從你的應(yīng)用程序代碼中使用它們。每個庫都包含與特定區(qū)域相關(guān)的不同功能。
          一些著名的庫是:
          1. libavcodec — 包含 FFmpeg 支持的所有編碼器和解碼器。
          2. libavformat — 擁有處理各種容器格式的所有復(fù)用器和解復(fù)用器。
          3. libavfilter — 由許多過濾器組成,你可以根據(jù)需要使用它們來修改音頻或視頻。
          4. libavdevice——支持多種不同的輸入和輸出設(shè)備。
          5. libavutil — 輔助便攜式多媒體編程。
          6. libswscale — 執(zhí)行高度優(yōu)化的圖像縮放以及色彩空間和像素格式轉(zhuǎn)換操作。
          7. libswresample — 執(zhí)行高度優(yōu)化的音頻重采樣、重新混合和樣本格式轉(zhuǎn)換操作。

          FFmpeg 工具

          除了可以從其他應(yīng)用程序使用的庫之外,F(xiàn)Fmpeg 包本身還包含一些工具。
          其中一些工具是:
          1. FFmpeg — 主要轉(zhuǎn)碼引擎。它通常從命令行或其他進(jìn)程調(diào)用。
          2. ffplay — 播放音頻或視頻的最小工具。
          3. ffprobe — 快速檢查媒體以提取有價值的信息,例如媒體中有多少流、視頻的幀速率等。

          FFprobe 用法和示例

          用法

          ffprobe [OPTIONS] [INPUT_FILE]
          • man ffplay?— 請參閱手冊。
          • ffplay -h?— 顯示幫助。
          • -v error?— 除非出現(xiàn)錯誤,否則隱藏日志。
          • -show_format?— 使用標(biāo)簽顯示格式化的視頻元數(shù)據(jù)。
          • show_streams?— 顯示文件中的所有流(視頻和音頻)。
          • -print_format— 以特定格式(CSV/XML/JSON)打印元數(shù)據(jù)。
          • select_streams
          • -show_entries stream=?僅顯示特定實(shí)體及其嵌套依賴項(xiàng)。
          • -show_entries stream= default-noprint_wrappers=1—?僅顯示特定實(shí)體。

          示例

          顯示所有視頻元數(shù)據(jù)。
          $ ffprobe -v error -show_format -show_streams input.mp4
          Output:
          [STREAM]
          index=0
          codec_name=h264
          codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
          profile=High
          codec_type=video
          codec_time_base=1/50
          codec_tag_string=avc1
          codec_tag=0x31637661
          width=320
          height=240
          has_b_frames=2
          sample_aspect_ratio=1:1
          display_aspect_ratio=4:3
          pix_fmt=yuv420p
          level=13
          color_range=N/A
          color_space=unknown
          color_transfer=unknown
          color_primaries=unknown
          chroma_location=left
          timecode=N/A
          refs=4
          is_avc=1
          nal_length_size=4
          id=N/A
          r_frame_rate=25/1
          avg_frame_rate=25/1
          time_base=1/12800
          start_pts=0
          start_time=0.000000
          duration_ts=384000
          duration=30.000000
          bit_rate=34761
          max_bit_rate=N/A
          bits_per_raw_sample=8
          nb_frames=750
          nb_read_frames=N/A
          nb_read_packets=N/A
          DISPOSITION:default=1
          DISPOSITION:dub=0
          DISPOSITION:original=0
          DISPOSITION:comment=0
          DISPOSITION:lyrics=0
          DISPOSITION:karaoke=0
          DISPOSITION:forced=0
          DISPOSITION:hearing_impaired=0
          DISPOSITION:visual_impaired=0
          DISPOSITION:clean_effects=0
          DISPOSITION:attached_pic=0
          TAG:language=und
          TAG:handler_name=VideoHandler
          [/STREAM]
          [STREAM]
          index=1
          codec_name=aac
          codec_long_name=AAC (Advanced Audio Coding)
          profile=LC
          codec_type=audio
          codec_time_base=1/44100
          codec_tag_string=mp4a
          codec_tag=0x6134706d
          sample_fmt=fltp
          sample_rate=44100
          channels=1
          channel_layout=mono
          bits_per_sample=0
          id=N/A
          r_frame_rate=0/0
          avg_frame_rate=0/0
          time_base=1/44100
          start_pts=-1024
          start_time=-0.023220
          duration_ts=1324024
          duration=30.023220
          bit_rate=56517
          max_bit_rate=N/A
          bits_per_raw_sample=N/A
          nb_frames=1293
          nb_read_frames=N/A
          nb_read_packets=N/A
          DISPOSITION:default=1
          DISPOSITION:dub=0
          DISPOSITION:original=0
          DISPOSITION:comment=0
          DISPOSITION:lyrics=0
          DISPOSITION:karaoke=0
          DISPOSITION:forced=0
          DISPOSITION:hearing_impaired=0
          DISPOSITION:visual_impaired=0
          DISPOSITION:clean_effects=0
          DISPOSITION:attached_pic=0
          TAG:language=und
          TAG:handler_name=SoundHandler
          [/STREAM]
          [FORMAT]
          filename=input.mp4
          nb_streams=2
          nb_programs=0
          format_name=mov,mp4,m4a,3gp,3g2,mj2
          format_long_name=QuickTime / MOV
          start_time=-0.023220
          duration=30.024000
          size=368644
          bit_rate=98226
          probe_score=100
          TAG:major_brand=isom
          TAG:minor_version=512
          TAG:compatible_brands=isomiso2avc1mp41
          TAG:title=FFprobe Tips
          TAG:encoder=Lavf56.15.101
          [/FORMAT]
          根據(jù)上面的示例,如果你只希望持續(xù)時間=30.024000。
          $ ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1 input.mp4
          Output: size=368644
          如果你只想要沒有鍵的值。
          $ ffprobe -v error -show_entries format=size -of default=noprint_wrappers=1:nokey=1 input.mp4
          Output: 368644
          正在獲取視頻的寬度和高度(分辨率)
          $ ffprobe -v error -select_streams v:0 -show_entries stream=height,width -of csv=s=x:p=0 input.mp4
          Output: 1280x720
          FFplay用法和示例
          用法
          ffplay [OPTIONS] [INPUT_FILE]
          • man ffplay—?參考手冊。
          • ffplay -h?—?顯示幫助。
          • ffplay ?—?全屏播放視頻。
          • -x -y ?—播放具有特定高度和寬度的視頻,在中間彈出窗口大小。如果彈出窗口和視頻的縱橫比不同,它將自動填充視頻區(qū)域和窗口區(qū)域之間的額外空間。
          • -noborder?—在彈出窗口中播放視頻時隱藏標(biāo)題欄。
          • -[top/left/bottom/right] ?—?在特定坐標(biāo)中創(chuàng)建彈出窗口。默認(rèn)情況下,它會在屏幕中央彈出。
          你可以在這里找到更多的FFplay用法:https://ffmpeg.org/ffplay-all.html

          示例

          全屏播放名為video.mp4的視頻文件。
          $ ffplay video.mp4
          在彈出窗口中播放視頻文件,大小為600寬,600高,沒有標(biāo)題欄。
          $ ffplay video.mp4 -x 600 -y 600 -noborder
          在左上角的彈出窗口中播放視頻文件。
          $ ffplay video.mp4 -x 600 -y 600 -noborder -top 0 -left 0

          結(jié)論

          本文已經(jīng)涵蓋了FFmpeg中的所有基礎(chǔ)知識。

          參考

          • https://ffmpeg.org/documentation.html
          • https://trac.ffmpeg.org/wiki/FFprobeTips
          • https://ffmpeg.org/ffplay-all.html
          • https://ffmpeg.org/ffprobe.html
          • FFmpeg Complete Guide by Syed Andaleeb Roomy
          努力分享優(yōu)質(zhì)的計算機(jī)視覺相關(guān)內(nèi)容,歡迎關(guān)注:

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有美顏、三維視覺、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN算法競賽等微信群


          個人微信(如果沒有備注不拉群!
          請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱



          下載1:何愷明頂會分享


          AI算法與圖像處理」公眾號后臺回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析


          下載2:終身受益的編程指南:Google編程風(fēng)格指南


          AI算法與圖像處理」公眾號后臺回復(fù):c++,即可下載。歷經(jīng)十年考驗(yàn),最權(quán)威的編程規(guī)范!



          下載3 CVPR2021

          AI算法與圖像處公眾號后臺回復(fù):CVPR,即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

          瀏覽 54
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色口逼视频网站 | 亚洲日韩AV在线播放 | 爱综合五月天 | 青青草黄色免费视频 | 色老板成人无码版在线播放 |