国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FFmpeg音視頻處理工具介紹及應(yīng)用

這篇具有很好參考價值的文章主要介紹了FFmpeg音視頻處理工具介紹及應(yīng)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

1 FFmpeg介紹

FFmpeg項目由 Fabrice Bellard在2000年創(chuàng)立。到目前為止,F(xiàn)Fmpeg項目的開發(fā)者仍然與VLC、MPV、dav1d、x264等多媒體開源項目有著廣泛的重疊。Ffmpeg(FastForward Mpeg)是一款遵循GPL的開源軟件,在音視頻處理方面表現(xiàn)十分優(yōu)秀,幾乎囊括了現(xiàn)存所有的視音頻格式的編碼,解碼、轉(zhuǎn)碼、混合、過濾及播放。作為最受歡迎的視頻和圖像處理軟件,它被來自各行各業(yè)的不同公司所廣泛使用。同時也是一款跨平臺的軟件,完美兼容Linux、Windows、Mac OSX等平臺。其實它由3大部件組成,號稱音視頻處理工具三劍客:

  • Ffmpeg:由命令行組成,用于多媒體格式轉(zhuǎn)換
  • Ffplay:基于ffmpeg開源代碼庫libraries做的多媒體播放器
  • Ffprobe:基于ffmpeg做的多媒體流分析器

???????Ffmpeg 應(yīng)該是 FFmpeg 工具集中最核心的利器,支持多種多樣的編碼器、解碼器、封裝格式、濾鏡功能。FFmpeg框架的基本組成包含AVFormat、AVCodec、AVFilter、AVDevice、AVUtil等模塊庫,結(jié)構(gòu)圖如下:

FFmpeg音視頻處理工具介紹及應(yīng)用

?(1)AVFormat–FFmpeg的封裝模塊

AVFormat中實現(xiàn)了目前多媒體領(lǐng)域中的絕大多數(shù)媒體封裝格式,包括封裝和解封裝,如MP4、FLV、KV、TS等文件封裝格式,RTMP、RTSP、MMS、HLS等網(wǎng)絡(luò)協(xié)議封裝格式。FFmpeg是否支持某種媒體封裝格式,取決于編譯時是否包含了該格式的封裝庫。根據(jù)實際需求,可進(jìn)行媒體封裝格式的擴(kuò)展,增加自己定制的封裝格式,即在AVFormat中增加自己的封裝處理模塊。

(2)AVCodec–FFmpeg的編解碼模塊

AVCodec中實現(xiàn)了目前多媒體領(lǐng)域絕大多數(shù)常用的編解碼格式,即支持編碼,也支持解碼。AVCodec除了支持MPEG4、AAC、MJPEG等自帶的媒體編解碼格式之外,還支持第三方的編解碼器,如H.264(AVC)編碼,需要使用x264編碼器;H.265(HEVC)編碼,需要使用x264編碼器;MP3(mp3lame)編碼,需要使用libmp3lame編碼器。如果希望增加自己的編碼格式,或者硬件編解碼,則需要在AVCodec中增加相應(yīng)的編解碼模塊。

(3)AVFilter–FFmpeg的濾鏡模塊

AVFilter庫提供了一個通用的音頻、視頻、字幕等濾鏡處理框架。在AVFilter中,濾鏡框架可以有多個輸入和多個輸出。

(4)swresample–FFmpeg的音頻轉(zhuǎn)換計算模塊

swresample模塊提供了高級別的音頻重采樣API。例如允許操作音頻采樣、音頻通道布局轉(zhuǎn)換與布局調(diào)整。

(5)swscale–FFmpeg的視頻圖像轉(zhuǎn)換計算模塊

swscale模塊提供了高級別的圖像轉(zhuǎn)換API,例如它允許進(jìn)行圖像縮放和像素格式轉(zhuǎn)換,常見于將圖像從1080p轉(zhuǎn)換成720p或者480p等的縮放,或者將圖像數(shù)據(jù)從YUV420p轉(zhuǎn)換成YUYV,或者YUV轉(zhuǎn)RGB等圖像格式轉(zhuǎn)換。

2 conda環(huán)境安裝ffmpeg

(1)annoconda環(huán)境安裝

安裝方法詳見:annoconda安裝

(2)ffmpeg安裝

conda install ffmpeg

3 ffmpeg命令

FFMPEG提供的命令行(CLI)工具ffmpeg,其使用方法如下(方括號表示可選項,花括號表示必選項目):

ffmpeg [global options] {[infile options]['-i' 'infile'] ...} {[outfile options] 'outfile' ...}

參數(shù)選項由三部分組成:可選的一組全局參數(shù)、一組或多組輸入文件參數(shù)、一組或多組輸出文件參數(shù),其中,每組輸入文件參數(shù)以‘-i’為結(jié)束標(biāo)記;每組輸出文件參數(shù)以輸出文件名為結(jié)束標(biāo)記。

(1)能力集列表

  • -formats:列出支持的文件格式。

  • -codecs:列出支持的編解碼器。

  • -decoders:列出支持的解碼器。

  • -encoders:列出支持的編碼器。

  • -protocols:列出支持的協(xié)議。

  • -bsfs:列出支持的比特流過濾器。

  • -filters:列出支持的濾鏡。

  • -pix_fmts:列出支持的圖像采樣格式。

  • -sample_fmts:列出支持的聲音采樣格式。

使用方法:

ffmpeg configure -encoders

(2)常用輸入選項

  • -i filename:指定輸入文件名。

  • -f fmt:強(qiáng)制設(shè)定文件格式,需使用能力集列表中的名稱(缺省是根據(jù)擴(kuò)展名選擇的)。

  • -ss hh:mm:ss[.xxx]:設(shè)定輸入文件的起始時間點(diǎn),啟動后將跳轉(zhuǎn)到此時間點(diǎn)然后開始讀取數(shù)據(jù)。

對于輸入,以下選項通常是自動識別的,但也可以強(qiáng)制設(shè)定。

  • -c codec:指定解碼器,需使用能力集列表中的名稱。

  • -acodec codec:指定聲音的解碼器,需使用能力集列表中的名稱。

  • -vcodec codec:指定視頻的解碼器,需使用能力集列表中的名稱。

  • -b:v bitrate:設(shè)定視頻流的比特率,整數(shù),單位bps。

  • -r fps:設(shè)定視頻流的幀率,整數(shù),單位fps。

  • -s WxH : 設(shè)定視頻的畫面大小。也可以通過掛載畫面縮放濾鏡實現(xiàn)。

  • -pix_fmt format:設(shè)定視頻流的圖像格式(如RGB還是YUV)。

  • -ar sample rate:設(shè)定音頻流的采樣率,整數(shù),單位Hz。

  • -ab bitrate:設(shè)定音頻流的比特率,整數(shù),單位bps。

  • -ac channels:設(shè)置音頻流的聲道數(shù)目。

(3)常用輸出選項

  • -f fmt:強(qiáng)制設(shè)定文件格式,需使用能力集列表中的名稱(缺省是根據(jù)擴(kuò)展名選擇的)。

  • -c codec:指定編碼器,需使用能力集列表中的名稱(編碼器設(shè)定為”copy“表示不進(jìn)行編解碼)。

  • -acodec codec:指定聲音的編碼器,需使用能力集列表中的名稱(編碼器設(shè)定為”copy“表示不進(jìn)行編解碼)。

  • -vcodec codec:指定視頻的編碼器,需使用能力集列表中的名稱(編解碼器設(shè)定為”copy“表示不進(jìn)行編解碼)。

  • -r fps:設(shè)定視頻編碼器的幀率,整數(shù),單位fps。

  • -pix_fmt format:設(shè)置視頻編碼器使用的圖像格式(如RGB還是YUV)。

  • -ar sample rate:設(shè)定音頻編碼器的采樣率,整數(shù),單位Hz。

  • -b bitrate:設(shè)定音視頻編碼器輸出的比特率,整數(shù),單位bps。

  • -ab bitrate:設(shè)定音頻編碼器輸出的比特率,整數(shù),單位bps。

  • -ac channels:設(shè)置音頻編碼器的聲道數(shù)目。

  • -an 忽略任何音頻流。

  • -vn 忽略任何視頻流。

  • -t hh:mm:ss[.xxx]:設(shè)定輸出文件的時間長度。

  • -to hh:mm:ss[.xxx]:如果沒有設(shè)定輸出文件的時間長度的畫可以設(shè)定終止時間點(diǎn)。

(4)流標(biāo)識

FFMPEG的某些選項可以對一個特定的媒體流起作用,這種情況下需要在選項后面增加一個流標(biāo)識。流標(biāo)識允許以下幾種格式:

  • 流序號。譬如“:1”表示第二個流。

  • 流類型。譬如“:a“表示音頻流,流類型可以和流序號合并使用,譬如“:a:1”表示第二個音頻流。

  • 節(jié)目。節(jié)目和流序號可以合并使用。

  • 流標(biāo)識。流標(biāo)識是一個內(nèi)部標(biāo)識號。

假如要設(shè)定第二個音頻流為copy,則需要指定-codec:a:1 copy

(5)音頻選項

  • -aframes:等價于frames:a,輸出選項,用于指定輸出的音頻幀數(shù)目。

  • -aq:等價于q:a,老版本為qscale:a,用于設(shè)定音頻質(zhì)量。

  • -atag:等價于tag:a,用于設(shè)定音頻流的標(biāo)簽。

  • -af:等價于filter:a,用于設(shè)定一個聲音的后處理過濾鏈,其參數(shù)為一個描述聲音后處理鏈的字符串。

(6)視頻選項

  • -vframes:等價于frames:v,輸出選項,用于指定輸出的視頻幀數(shù)目。

  • -aspect:設(shè)置寬高比,如4:3、16:9、1.3333、1.7777等。

  • -bits_per_raw_sample:設(shè)置每個像素點(diǎn)的比特數(shù)。

  • -vstats:產(chǎn)生video統(tǒng)計信息。

  • -vf:等價于filter:v,用于設(shè)定一個圖像的后處理過濾鏈,其參數(shù)為一個描述圖像后處理鏈的字符串。

  • -vtag:等價于tag:v,用于設(shè)定視頻流的標(biāo)簽。

  • -force_fps:強(qiáng)制設(shè)定視頻幀率。

  • -force_key_frames:顯式控制關(guān)鍵幀的插入,參數(shù)為字符串,可以是一個時間戳,也可以是一個“expr:”前綴的表達(dá)式。如“-force_key_frames 0:05:00”、“-force_key_frames expr:gte(t,n_forced*5)”

(7)高級選項

  • -re:要求按照既定速率處理輸入數(shù)據(jù),這個速率即是輸入文件的幀率。

  • -map:指定輸出文件的流映射關(guān)系。例如 “-map 1:0 -map 1:1”要求將第二個輸入文件的第一個流和第二個流寫入到輸出文件。如果沒有-map選項,ffmpeg采用缺省的映射關(guān)系。

4 ffmpeg使用示例

(1)視頻播放

  • 播放視頻

????????ffplay input.mp4

  • 播放完自動退出

????????ffplay -autoexit input.mp4

  • 設(shè)置視頻的屏幕高寬比

????????ffmpeg -i input.mp4 -aspect 16:9 output.mp4

(2)視頻壓縮與拼接

  • 視頻壓縮

????????ffmpeg -i demo.mp4 -vcodec h264 -vf scale=640:-2 -threads 4 result.mp4

????????ffmpeg -i demo.mp4 -strict -2 -vcodec h264 result.mp4

  • 將4個視頻拼接成一個很長的視頻(無聲音)

????????ffmpeg -i 0.mp4 -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex '[0:0][1:0] [2:0][3:0] concat=n=4:v=1 [v]' -map '[v]' output.mp4

  • 將3個視頻拼接成一個很長的視頻(有聲音)

????????ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex '[0:0][0:1] [1:0][1:1] [2:0][2:1] concat=n=3:v=1:a=1 [v][a]' -map '[v]' -map '[a]’? output.mp4

  • 橫向拼接2個視頻

????????ffmpeg -i 0.mp4 -i 1.mp4 -filter_complex "[0:v]pad=iw*2:ih*1[a];[a][1:v]overlay=w" out.mp4

  • 豎向拼接2個視頻

????????ffmpeg -i 0.mp4 -i 1.mp4 -filter_complex "[0:v]pad=iw:ih*2[a];[a][1:v]overlay=0:h" out_2.mp4

  • 橫向拼接3個視頻

????????ffmpeg -i 0.mp4 -i 1.mp4 -filter_complex "[0:v]pad=iw:ih*2[a];[a][1:v]overlay=0:h" out_2.mp4

  • 豎向拼接3個視頻

????????ffmpeg -i 0.mp4 -i 1.mp4 -i 2.mp4 -filter_complex "[0:v]pad=iw:ih*3[a];[a][1:v]overlay=0:h[b];[b][2:v]overlay=0:2.0*h" out_v4.mp4

  • 4個視頻2x2方式排列

????????ffmpeg -i 0.mp4 -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" out.mp4

(2)視頻幀操作

  • 查看每幀的信息

????????ffprobe -v error -show_frames gemfield.mp4

  • 從一個視頻文件中抽取一幀圖像

????????ffmpeg -y -i demo.mp4 -ss 00:03:22.000 -vframes 1 -an result.jpg

  • 查看視頻總幀數(shù)

????????ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 gemfield.mp4

  • 查看視頻總幀數(shù)

????????ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 gemfield.mp4

  • 查看 key frame 幀數(shù)

????????ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 -skip_frame nokey gemfield.mp4

  • 查看 key frame 所在的時間

????????ffprobe -v error -skip_frame nokey -select_streams v:0 -show_entries frame=pkt_pts_time -of csv=print_section=0 gemfield.mp4

  • 查看 key frame 分布的情況

????????ffprobe -v error -show_frames gemfield.mp4 | grep pict_type

  • 查看 key frame 所在的幀數(shù)

????????ffprobe -v error -select_streams v -show_frames -show_entries frame=pict_type -of csv gemfield.mp4 | grep -n I | cut -d ':' -f 1

  • 重新設(shè)置 key frame interval

????????ffmpeg -i gemfield.mp4 -vcodec libx264 -x264-params keyint=1:scenecut=0 -acodec copy out.mp4

  • 查看視頻波特率

????????ffprobe -v error -select_streams v:0 -show_entries stream=bit_rate -of default=noprint_wrappers=1:nokey=1 gemfield.mp4

(3)圖片與視頻

  • 從一個視頻生成一個分辨率修改為640*640的新視頻

????????ffmpeg -i demo.avi -vf scale=640:640 result.avi?

  • 從視頻中抽取視頻(讓視頻靜音)

????????ffmpeg -i video_input.mp4 -an -video_output.mp4
????????ffmpeg -i input.mp4 -vcodec copy -an output.mp4

  • 截取一張352x240尺寸大小的,格式為jpg的圖片

?????? ffmpeg -i test.asf -y -f image2 -t 0.001 -s 352x240 a.jpg

  • 把視頻的前30幀轉(zhuǎn)換成一個Animated Gif

?????? ffmpeg -i test.asf -vframes 30 -y -f gif a.gif

  • 截取指定時間的縮微圖

?????? ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg

  • 將一個avi文件轉(zhuǎn)成mp4格式

????????ffmpeg -i demo.avi -acodec copy -vcodec copy result.mp4

  • 為視頻增加字幕

????????ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4

  • 轉(zhuǎn)換文件為3GP格式

?????? ffmpeg -y -i test.mpeg -bitexact -vcodec h263 -b 128 -r 15 -s 176x144
-acodec aac -ac 2 -ar 22500 -ab 24 -f 3gp test.3gp

  • 將一個mp4文件的音視頻流實時轉(zhuǎn)碼之后發(fā)送給某個遠(yuǎn)程設(shè)備,遠(yuǎn)程設(shè)備可以通過http獲取的sdp文件來接收rtp媒體數(shù)據(jù)。

??????? ffmpeg -re -i demo.mp4 -acodec copy -vcodec libx264 -s 480x270 -map 0:0 -f rtp rtp://10.10.10.100:1234 -map 0:1 -f rtp rtp://10.10.10.100:1238 > /var/www/live.sdp

  • 使用ffmpeg錄像屏幕

????????ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1024x768 ~/test.avi

  • 重新調(diào)整視頻尺寸大小

????????ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi

  • 把攝像頭的實時視頻錄制下來,存儲為文件

????????ffmpeg? -f video4linux -s 320*240 -r 10 -i /dev/video0? test.asf

  • 圖片轉(zhuǎn)視頻(規(guī)則的名稱)

????????ffmpeg -f image2 -i 'in%6d.jpg' -vcodec libx264 -r 25 -b 200k test.mp4

  • 圖片轉(zhuǎn)視頻(不規(guī)則的名稱)

??????? 方法1:不規(guī)則圖片名稱合成視頻文件

????????ffmpeg -framerate 10 -pattern_type glob -i '*.jpg' out.mp4

????????cat *.png | ffmpeg -f image2pipe -i - output.mp4

??????? 方法2:先動手把不規(guī)則文件重命名規(guī)則圖片名。

def getTpyeFile(filelist, type):     
    res = []     
    for item in filelist:
         name, suf = os.path.splitext(item) # 文件名,后綴
         if suf == type:
             res.append(item)
     return res
 
pwd = os.getcwd() # 返回當(dāng)前目錄的絕對路徑
dirs = os.listdir() # 當(dāng)前目錄下所有的文件名組成的數(shù)組
typefiles = getTpyeFile(dirs, '.jpg')
 
for i in range(0,len(typefiles)):
     os.rename(typefiles[i],"./%d.jpg" % (i)) #將文件以數(shù)字規(guī)則命令

將需要合成的圖片放在txt中,通過讀取txt文件合并成視頻。

????????ffmpeg -f concat -i files.txt output.mp4

  • 壓縮視頻文件

????????ffmpeg -i video_input.mp4 -r 24 video_output.mp4

  • 通過壓縮音頻來降低視頻文件的體積

????????ffmpeg -i video_input.mp4 -c:v libx264 -ac 2 -c:a aac -strict -2 -b:a 128k -crf 28 video_output.mp4

(4)音頻處理

  • 音頻播放

????????ffplay demo.ape

  • 顯示波形圖

????????ffplay -showmode 1 demo.ape

  • 顯示頻譜圖

????????ffplay -showmode 2 demo.ape

  • 從視頻中抽取音頻

????????ffmpeg -i video.mp4 -vn audio.mp3

  • 指定編碼比特率從視頻中抽取音頻

????????ffmpeg -i video.mp4 -vn -ab 128k audio.mp3

  • 為音頻增加封面圖片

????????ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

  • 使用alsa接口錄制一段音頻存放到某個wav文件中

??????? ffmpeg -f alsa -i hw:0 -t 100 result.wav

  • 使用alsa接口搭建一個個人網(wǎng)絡(luò)電臺

??????? ffmpeg -f alsa -i default -acodec aac -strict -2 -b:a 128k -r 44100 /var/www/data/main.m3u8

  • 壓縮媒體文件

????????ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3
????????ffmpeg -i audio_input.mp3 -b:a 192k audio_output.mp3

(5)格式轉(zhuǎn)換

  • MPEG4編碼轉(zhuǎn)成H264編碼

????????ffmpeg -i input.mp4 -strict -2 -vcodec h264 output.mp4

  • H264編碼轉(zhuǎn)成MPEG4編碼?

????????ffmpeg -i input.mp4 -strict -2 -vcodec mpeg4 output.mp4

  • webp轉(zhuǎn)換成jpg

????????ffmpeg -i in.webp out.jpg

  • webp轉(zhuǎn)換成png

????????ffmpeg -i in.webp out.png

  • jpg轉(zhuǎn)換成png

????????ffmpeg -i in.jpg out.png

  • jpg轉(zhuǎn)換成webp

????????ffmpeg -i in.jpg out.webp

  • ?png轉(zhuǎn)換成webp

????????ffmpeg -i in.png out.webp

  • png轉(zhuǎn)換成jpg

????????ffmpeg -i in.png out.jpg

(6)其它指令

  • 查看FFmpeg支持的編碼器

????????ffmpeg configure -encoders

  • 查看FFmpeg支持的解碼器

????????ffmpeg configure -decoders

  • 查看FFmpeg支持的通信協(xié)議

????????ffmpeg configure -protocols

  • 查看FFmpeg所支持的音視頻編碼格式、文件封裝格式與流媒體傳輸協(xié)議?

????????ffmpeg configure --help

  • 從開始裁剪媒體文件

????????ffmpeg -i input_video.mp4 -t 5 output_video.mp4
????????ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav

  • 剪輯中間一段媒體文件

????????通過 -ss 給出一個開始時間,-to 給出結(jié)束時間

????????ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3
????????ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav
????????ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264
????????ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg

?文章來源地址http://www.zghlxwxcb.cn/news/detail-479173.html

?

?

?

到了這里,關(guān)于FFmpeg音視頻處理工具介紹及應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java如何整合FFmpeg、FFprobe等音視頻處理工具,零基礎(chǔ)照樣玩

    Java如何整合FFmpeg、FFprobe等音視頻處理工具,零基礎(chǔ)照樣玩

    最后奉上工具的學(xué)習(xí)資料(感興趣的可以看看),廢話不多說!?。。。?FFmpeg是啥 :? ffmpeg(命令行工具) 是一個快速的音視頻轉(zhuǎn)換工具。 FFmpeg能干啥 :如果你用過愛剪輯的話或者其他一些音視頻處理軟件的話,你可以理解他們能做的你用玩意都能做。 為啥要用FFmpeg :開源

    2024年02月02日
    瀏覽(29)
  • x-cmd-pkg | 音視頻處理領(lǐng)域中常用的開源轉(zhuǎn)換工具:ffmpeg

    x-cmd-pkg | 音視頻處理領(lǐng)域中常用的開源轉(zhuǎn)換工具:ffmpeg

    ffmpeg 是音視頻處理領(lǐng)域中常用的開源轉(zhuǎn)換工具。以強(qiáng)大的功能、廣泛的格式支持和豐富的參數(shù)調(diào)節(jié)在處理音視頻格式的任務(wù)中得到了廣泛的使用。 FFmpeg 是由 Fabrice Bellard 于 2000 年發(fā)起的開源多媒體框架,使用 C 語言編寫。 “FF” 代表\\\"fast forward\\\",意為高效處理,而 “mpeg”

    2024年02月04日
    瀏覽(24)
  • 音視頻 FFmpeg音視頻處理流程

    音視頻 FFmpeg音視頻處理流程

    推薦一個零聲學(xué)院項目課,個人覺得老師講得不錯,分享給大家: 零聲白金學(xué)習(xí)卡(含基礎(chǔ)架構(gòu)/高性能存儲/golang云原生/音視頻/Linux內(nèi)核) https://xxetb.xet.tech/s/VsFMs

    2024年02月12日
    瀏覽(97)
  • ffmpeg@音視頻工具@音視頻合并

    FFmpeg中文網(wǎng) (github.net.cn) FFmpeg 是一款強(qiáng)大的開源跨平臺音視頻處理工具集,它包含了一系列命令行工具以及用于音頻和視頻編碼解碼、格式轉(zhuǎn)換、抓取、流化等功能的庫。FFmpeg 支持多種視頻、音頻格式和編解碼器,能夠進(jìn)行音視頻的壓縮、封裝、轉(zhuǎn)碼、分割、合并、過濾、抓

    2024年03月17日
    瀏覽(29)
  • ffmpeg系列學(xué)習(xí)——FFmpeg的音視頻處理

    1.音視頻的采樣率、采樣位深度和聲道數(shù) 音頻和視頻的采樣率、采樣位深度和聲道數(shù)是媒體文件中的重要參數(shù),它們會直接影響到音視頻的質(zhì)量和文件大小。下面對它們進(jìn)行詳細(xì)解釋: 采樣率 采樣率指音頻每秒鐘采樣的次數(shù),用赫茲(Hz)表示。采樣率越高,音頻的還原度越

    2024年02月04日
    瀏覽(84)
  • FFmpeg 音視頻開發(fā)工具

    FFmpeg 音視頻開發(fā)工具

    目錄 FFmpeg 下載與安裝 ffmpeg 使用快速入門 ffplay 使用快速入門 1、FFmpeg 是處理音頻、視頻、字幕和相關(guān)元數(shù)據(jù)等多媒體內(nèi)容的庫和工具的集合。一個完整的跨平臺解決方案,用于錄制、轉(zhuǎn)換和流式傳輸音頻和視頻。 官網(wǎng):https://www.ffmpeg.org/ 源碼:https://github.com/FFmpeg/FFmpeg。

    2024年02月15日
    瀏覽(29)
  • [音視頻處理] FFmpeg使用指北1-視頻解碼

    本文將詳細(xì)介紹如何使用ffmpeg 4.4在C++中解碼多種格式的媒體文件,這些媒體文件可以是視頻、視頻流、圖片,或是桌面截屏或USB攝像頭的實時圖片。解碼文件后,還將每幀圖片轉(zhuǎn)換為OpenCV的Mat格式以供后續(xù)使用。 目錄 1 基于ffmpeg的媒體文件解碼 1.1 簡介 1.2 詳細(xì)代碼 2 ffmpeg函

    2024年02月07日
    瀏覽(26)
  • 音視頻開發(fā)-ffmpeg介紹-系列一

    音視頻開發(fā)-ffmpeg介紹-系列一

    目錄 一.簡介 FFmpeg框架的基本組成包含: 二.?FFmpeg框架梳理音視頻的流程?編輯 基本概念: 三.ffmpeg、ffplay、ffprobe區(qū)別 ? ? ?4.1 ffmpeg是用于轉(zhuǎn)碼的應(yīng)用程序? 4.2?fffplay是用于播放的應(yīng)用程序? ? ? ?4.3?ffprobe是用于查看文件格式的應(yīng)用程序 ? ? ?4.4?ffmpeg是用于轉(zhuǎn)碼的應(yīng)用程

    2024年02月16日
    瀏覽(32)
  • JavaCV與FFmpeg:音視頻流處理技巧

    1. JavaCV簡介 JavaCV是一個開源的Java接口,為OpenCV、FFmpeg和其他類似工具提供了封裝。它允許Java開發(fā)者直接在他們的應(yīng)用程序中使用這些強(qiáng)大的本地庫,而無需深入了解復(fù)雜的本地代碼。JavaCV特別適用于處理圖像和視頻數(shù)據(jù),提供了一系列的功能,如圖像捕獲、處理和視頻編解

    2024年02月04日
    瀏覽(109)
  • 音視頻處理 ffmpeg中級開發(fā) H264編碼

    音視頻處理 ffmpeg中級開發(fā) H264編碼

    libavcodec/avcodec.h 常用的數(shù)據(jù)結(jié)構(gòu) AVCodec 編碼器結(jié)構(gòu)體 AVCodecContext 編碼器上下文 AVFrame 解碼后的幀 結(jié)構(gòu)體內(nèi)存的分配和釋放 av_frame_alloc 申請 av_frame_free() 釋放 avcodec_alloc_context3() 創(chuàng)建編碼器上下文 avcodec_free_context() 釋放編碼器上下文 解碼步驟 avcodec_find_decoder 查找解碼器 avcod

    2024年02月01日
    瀏覽(109)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包