FFmpeg — 應(yīng)用程序中強(qiáng)大的視頻音頻助手
點(diǎn)擊下方“AI算法與圖像處理”,一起進(jìn)步!
重磅干貨,第一時間送達(dá)
什么是FFmpeg? 人們?yōu)槭裁词褂?FFmpeg? 如何在 Windows、Ubuntu 和 macOS 中設(shè)置 FFmpeg。 FFmpeg 中提供了用于媒體操作的庫。 FFmpeg 為命令行應(yīng)用程序提供的工具。 FFprobe 和 FFplay 的用法和示例。
什么是FFmpeg?
人們?yōu)槭裁词褂?FFmpeg?
在 Windows、Ubuntu 和 macOS 中設(shè)置 FFmpeg
蘋果系統(tǒng)
打開終端并輸入 brew?—?version。如果 Homebrew 安裝成功,你應(yīng)該會在終端中看到 brew 版本。

對于 x86 架構(gòu)的 macOS,請使用命令 brew install ffmpeg,而對于 M1,請使用命令aarch arm64 brew install ffmpeg。

安裝完成后,你可以在終端輸入 ffmpeg -version。如果打印出 FFmpeg 版本,則表示 FFmpeg 安裝成功。

Windows
git full– 從具有大量庫的主分支構(gòu)建。git essentials– 從帶有常用庫的主分支構(gòu)建。release full– 從具有大量庫的最新版本分支構(gòu)建。release essentials– 使用常用庫從最新版本分支構(gòu)建。
在此處下載 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 -version和ffplay -version。

FFmpeg 庫
libavcodec — 包含 FFmpeg 支持的所有編碼器和解碼器。 libavformat — 擁有處理各種容器格式的所有復(fù)用器和解復(fù)用器。 libavfilter — 由許多過濾器組成,你可以根據(jù)需要使用它們來修改音頻或視頻。 libavdevice——支持多種不同的輸入和輸出設(shè)備。 libavutil — 輔助便攜式多媒體編程。 libswscale — 執(zhí)行高度優(yōu)化的圖像縮放以及色彩空間和像素格式轉(zhuǎn)換操作。 libswresample — 執(zhí)行高度優(yōu)化的音頻重采樣、重新混合和樣本格式轉(zhuǎn)換操作。
FFmpeg 工具
FFmpeg — 主要轉(zhuǎn)碼引擎。它通常從命令行或其他進(jìn)程調(diào)用。 ffplay — 播放音頻或視頻的最小工具。 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í)體。
示例
$ 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]
$ 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 [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 video.mp4
$ ffplay video.mp4 -x 600 -y 600 -noborder

$ ffplay video.mp4 -x 600 -y 600 -noborder -top 0 -left 0

結(jié)論
參考
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ī)學(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 最新論文

評論
圖片
表情
