小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

音視頻開發(fā)常用工具

 SocFans 2024-12-17

前言

我們在進行音視頻開發(fā)過程中不可避免的需要使用一些工具進行協(xié)助開發(fā),本文重點講解音視頻開發(fā)過程中常用工具以及常用功能。


一、VLC 播放器

1、簡介

VLC 支持多種常見音視頻格式,支持多種流媒體傳輸協(xié)議,也可當(dāng)做本地流媒體服務(wù)器使用,功能十分強大。

2、下載

官網(wǎng)下載地址: https://www./

或者在電腦的應(yīng)用商店下載也可以
在這里插入圖片描述

3、VLC media player

VLC 是一款自由、開源的跨平臺多媒體播放器及框架,可播放大多數(shù)多媒體文件,以及 DVD、音頻 CD、VCD 及各類流媒體協(xié)議。

VLC 的全名是 Video Lan Client,是一個開源的、跨平臺的視頻播放器。

VLC 支持大量的音視頻傳輸、封裝和編碼格式,下面給出一個簡要的不完整的列表:

  • 操作系統(tǒng): Windows、 WinCE、 Linux、 MacOSX、 BEOS、 BSD
  • 訪問形式: 文件、 DVD/VCD/CD、 http、 ftp、 mms、 TCP、 UDP、 RTP、 IP 組播、 IPv6、 rtsp
  • 編碼格式: MPEG*、 DIVX、 WMV、 MOV、 3GP、 FLV、 H.263、 H.264、 FLAC
  • 視頻字幕: DVD、 DVB、 Text、 Vobsub
  • 視頻輸出: DirectX、 X11、 XVideo、 SDL、 FrameBuffer、 ASCII
  • 控制界面: WxWidgets、 QT4、 Web、 Telnet、 Command line
  • 瀏覽器插件: ActiveX、 Mozilla(firefox)

4、VLC 打開網(wǎng)絡(luò)串流

http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8

媒體 -> 打開網(wǎng)絡(luò)串流
在這里插入圖片描述
將上面的網(wǎng)絡(luò)復(fù)制并粘貼到此處,并點擊播放
在這里插入圖片描述
可以看到播放效果請?zhí)砑訄D片描述

5、VLC 作為流媒體服務(wù)器

VLC 的功能很強大, 它不僅僅是一個視頻播放器, 也可作為小型的視頻服務(wù)器, 更可以一邊播放一邊轉(zhuǎn)碼, 把視頻流發(fā)送到網(wǎng)絡(luò)上。

①、搭建 RTSP 流媒體服務(wù)器

媒體 -> 流
在這里插入圖片描述
添加一個本地的 mp4 格式視頻文件,再點擊串流
在這里插入圖片描述
點擊下一個
在這里插入圖片描述

選擇 RTSP,再點擊添加
在這里插入圖片描述
例如我這里指定一個 RTSP 默認的 554 端口,路徑為 /test,再點擊下一個
在這里插入圖片描述
配置文件選擇 Video - H.264 + MP3 (TS)
在這里插入圖片描述
TS 流是一個一個的片段,在任意時刻我們可以找到同步頭,可以播放出來,這是 TS 流的好處

可以看到如下內(nèi)容,并點擊流
在這里插入圖片描述

  • vcodec=h264:H264 編碼
  • vb=800:視頻的比特率
  • acodec=mpga:音頻的編碼
  • ab=128:音頻的比特數(shù)
  • channels=2:聲道數(shù)
  • samplerate=44100:采樣率
  • rtsp://:554/test:播放路徑

rtp 是傳輸協(xié)議,rtsp 是控制協(xié)議

可以看到進度條開始動了,這樣一個 RTSP 流媒體服務(wù)器就搭建好了
在這里插入圖片描述

②、新建播放器

再打開一個 VLC media player
媒體 -> 打開網(wǎng)絡(luò)串流,將上面的播放路徑復(fù)制到 URL 處,并點擊播放
在這里插入圖片描述
可以看到視頻文件正在被播放
請?zhí)砑訄D片描述
左邊是 VLC 作為流媒體服務(wù)器,作為推流,右邊是 VLC 播放器打開網(wǎng)絡(luò)串流,是一個小型的播放器

可以打開多個播放器打開網(wǎng)絡(luò)串流

二、MediaInfo

1、簡介

MediaInfo 用來分析視頻和音頻文件的編碼和內(nèi)容信息。

①、使用 MediaInfo 可以獲得多媒體文件的哪些信息?

  • 內(nèi)容信息: 標(biāo)題, 作者, 專輯名, 音軌號, 日期, 總時間……
  • 視頻: 編碼器, 長寬比, 幀頻率, 比特率……
  • 音頻: 編碼器, 采樣率, 聲道數(shù), 語言, 比特率……
  • 文本: 語言和字幕
  • 段落: 段落數(shù), 列表

②、MediaInfo 支持哪些文件格式?

  • 視頻:MKV,OGM,AVI,DivX,WMV,QuickTime,Real,MPEG-1,MPEG-2,MPEG-4,DVD (VOB)…
  • (編碼器:DivX,XviD,MSMPEG4,ASP,H.264,AVC…)
  • 音頻:OGG,MP3,WAV,RA,AC3,DTS,AAC,M4A,AU,AIFF…
  • 字幕:SRT,SSA,ASS,SAMI…

2、下載

官網(wǎng)下載地址:https:///en/MediaInfo

或者在電腦的應(yīng)用商店下載也可以
在這里插入圖片描述

3、MediaInfo

①、主界面

主頁面如下圖所示:
在這里插入圖片描述

②、主要功能特點

支持眾多視頻和音頻文件格式

多種查看方式: 文本, 表格, 樹形圖, 網(wǎng)頁……
在這里插入圖片描述
自定義查看方式

信息導(dǎo)出: 文本, CSV, HTML……

③、使用方法

如果是查看少數(shù)媒體文件的信息, 直接把文件拖入 Mediainfo 應(yīng)用界面即可,然后就會直接顯示出文件的相關(guān)信息。
在這里插入圖片描述
Mediainfo 也可以直接查看整個文件夾下中的媒體文件信息, 可以點擊界面左側(cè)中間的圖標(biāo)即可。
在這里插入圖片描述
Mediainfo 能夠查看視頻、 音頻、 圖片的格式信息。

④、Mediainfo 相關(guān)參數(shù)和含義簡介

準(zhǔn)備一個 mp4 文件的視頻文件將其拖入到主界面,并且以 HTML 方式查看,此處先把視圖切換為 HTML(View 菜單 -> HTML)

可以看出,主要包括三個部分的參數(shù),分別是: General、 Video、 Audio。

General 主要是視頻封裝格式的信息,包括:文件大小、文件時長、比特率、編碼時間等。
在這里插入圖片描述
Video 主要是視頻編碼的相關(guān)信息,包括:編碼器、Profile & Level、是否使用算術(shù)熵編碼、比特率、視頻文件大小、視頻尺寸、幀率模式、幀率、色彩空間、掃描類型(逐行/隔行)、編碼設(shè)置等
在這里插入圖片描述
Audio 主要是音頻編碼的相關(guān)信息,包括:格式、聲道數(shù)、編碼格式、Profile、時長、比特率、是否有損壓縮、音頻的幀率等信息。
在這里插入圖片描述

三、FlvAnalyzer

1、簡介

直播推流的時候需要用到 RTMP 的視頻數(shù)據(jù)格式。RTMP 的視頻格式和 FLV 相似,通過查看 FLV 的格式文檔,可以通過分析 FLV 協(xié)格式來解析 RTMP 格式。

RTMP 中的數(shù)據(jù)就是由 FLV 的 TAG 中的數(shù)據(jù)區(qū)構(gòu)成。FLV 是流媒體封裝格式,可以將其數(shù)據(jù)看為二進制字節(jié)流。

總體上看,F(xiàn)LV 包括文件頭(File Header)和文件體(File Body)兩部分,其中文件體由一系列的 TagTag Size 對組成,如下圖所示。
在這里插入圖片描述

2、下載

下載鏈接:flvAnalyser v0.1.2.005

3、基本功能特點

FlvAnalyser 是一款強大的 flv 文件分析工具,包括以下基本功能特點:

  • 文件格式分析
  • 數(shù)據(jù)分析: Tag 列表, 16 進制分析
  • 時間戳分析
  • 碼率分析
  • 音視頻同步分析
  • 日志記錄
  • 語法指南(FLV 基本語法)
  • 視頻、 音頻 ES 提取存文件;
  • 時間信息提取存文件;

4、FlvAnalyzer

①、主界面

在這里插入圖片描述

②、格式分析

file -> open file

這里和上面的講過的 Mediainfo 很相似
在這里插入圖片描述

③、數(shù)據(jù)分析

在這里插入圖片描述

④、時間分析

在這里插入圖片描述

⑤、碼率分析

在這里插入圖片描述

⑥、同步分析

在這里插入圖片描述

上面最常用的是格式分析數(shù)據(jù)分析

四、Elecard Stream Analyzer 碼流分析工具

1、簡介

Elecard Stream Analyzer 是一款簡單小巧的碼流分析工具,通過該軟件,用戶可以快速的分析查看視頻序列碼流;用戶只需將視頻文件導(dǎo)入軟件內(nèi),系統(tǒng)就會自動幫您分析文件,分析后就會顯示視頻碼的文件大小、碼流類型、數(shù)據(jù)包數(shù)等內(nèi)容了

2、下載

鏈接:https://pan.baidu.com/s/1hMGBTPB58xYTmYysPwlrCA

3、碼流

碼流(Data Rate)是指視頻文件在單位時間內(nèi)使用的數(shù)據(jù)流量,也叫碼率,是視頻編碼中畫面質(zhì)量控制中最重要的部分。

同樣分辨率下,視頻文件的碼流越大,壓縮比就越小,畫面質(zhì)量就越好。

4、使用

打開一個 aac 文件,查看相關(guān)編解碼信息
在這里插入圖片描述

5、特色介紹

  • 顯示和保存流摘要和圖片信息
  • 顯示的解碼,預(yù)測和未經(jīng)過濾的幀數(shù)據(jù)(YUV 和單機)
  • 顯示剩余,轉(zhuǎn)換和反量化系數(shù)
  • 保存的解碼,預(yù)測,未經(jīng)過濾和殘余信息
  • 顯示 VPS,SPS,PPS 的片頭與偏移和位大小指示(如標(biāo)準(zhǔn)文檔中)
  • 顯示的編碼樹組數(shù)據(jù):位置,分片索引,瓷磚指數(shù),大小,編碼,預(yù)測(MV,MVD及 MV 候選人),變換單元信息
  • 切片和小塊邊界,分區(qū),運動矢量,種類,比特大小,量化的可視化
  • 通過圖表欄或縮略圖導(dǎo)航
  • 顯示器內(nèi)部的視頻流比特分配。能夠選擇的比特流元素的顯示
  • 流導(dǎo)航和顯示 I,P,B,IP 和關(guān)鍵幀模式
  • 顯示參考幀的
  • 十六進制查看器
  • 流瀏覽器 - 文件內(nèi)容(頭層)呈現(xiàn)在文本模式下
  • 查看參考原始數(shù)據(jù)
  • 指標(biāo)計算
  • 參照原始數(shù)據(jù)可視化比較(溫度,減,比較,塊 PSNR 模式)

6、多碼流

多碼流技術(shù)是通過在編碼過程中同時產(chǎn)生多種不同碼流及分辨率的流媒體數(shù)據(jù), 根據(jù)用戶實際網(wǎng)絡(luò)帶寬條件為之自動分配相對最佳解碼畫質(zhì)的解決方案。

五、FFmpeg

這里僅對 FFmepg 做簡要介紹,因其內(nèi)容龐大,具體部分準(zhǔn)備放到后面講解

1、簡介

ffmpeg 是一個跨平臺的音視頻處理庫, 為了跨平臺那么就需要編譯出適用于各個平臺的 ffmpeg 庫。

FFmpeg 是一套可以用來記錄、 轉(zhuǎn)換數(shù)字音頻、 視頻, 并能將其轉(zhuǎn)化為流的開源計算機程序。它提供了錄制、 轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫 libavcodec, 為了保證高可移植性和編解碼質(zhì)量,libavcodec 里很多 code 都是從頭開發(fā)的。

2、FFmpeg 項目組成

  • libavformat:用于各種音視頻封裝格式的生成和解析,包括獲取解碼所需信息以生成解碼上下文結(jié)構(gòu)
  • libavcodec:用于各種類型聲音/圖像編解碼;
  • libavutil:包含一些公共的工具函數(shù);
  • libswscale:用于視頻場景比例縮放、色彩映射轉(zhuǎn)換;
  • libpostproc:用于后期效果處理;

①、ffmpeg:該項目提供的一個工具,可用于格式轉(zhuǎn)換、解碼或電視卡即時編碼等
②、ffsever:一個 HTTP 多媒體即時廣播串流服務(wù)器;
③、ffplay:是一個簡單的播放器,使用 ffmpeg 庫解析和解碼,通過 SDL 顯示;

3、FFmpeg 組成

官網(wǎng)介紹 FFMPEG 是一個多媒體框架,其包含了多個模塊庫:AVFormat,AVCodec,AVFilter,AVDevice,AVUtil 等,并且提供了基于這些庫的三個命令行工具: ffmpeg, ffplay, ffprobe。

4、使用 ffmpeg 的方式分為兩種

  • 一種方式是直接使用 ffmpeg 提供的這三個命令行工具來進行多媒體處理;
  • 另一種是使用 ffmpeg 封裝的這些庫進行二次開發(fā)

5、FFmpeg 命令行

  • 列出支持的格式
  • 剪切一段媒體文件
  • 提取一個視頻文件中的音頻文件
  • 從 MP4 文件中抽取視頻流導(dǎo)出為裸的 H264 數(shù)據(jù)
  • 視頻靜音, 即只保留視頻 -an,-vn
  • 使用 AAC 音頻數(shù)據(jù)和 H264 視頻生成 MP4 文件
  • 音頻格式轉(zhuǎn)換
  • 從 WAV 音頻文件中導(dǎo)出 PCM 裸數(shù)據(jù)
  • 將一個 MP4 的文件轉(zhuǎn)換為一個 GIF 動圖
  • 使用一組圖片生成 gif
  • 淡入效果器使用
  • 將兩路聲音合并,比如加背景音樂
  • 為視頻添加水印效果
  • 視頻提亮效果器
  • 視頻旋轉(zhuǎn)效果器的使用
  • 視頻裁剪效果器的使用
  • 將一段視頻推送到流媒體服務(wù)器上
  • 將流媒體服務(wù)器上的流 dump 到本地
  • 將兩個音頻文件以兩路流的形式封裝到一個文件中

6、FFmpeg 下載及安裝

①、FFmpeg 下載

官方下載地址:https:///download.html
在這里插入圖片描述
選擇 windows build from gyan.dev
在這里插入圖片描述
選擇其中一個進行下載
在這里插入圖片描述

②、安裝

<1>、下載好解壓到本地目錄 D:\FFmpeg 下
在這里插入圖片描述
<2>、設(shè)置環(huán)境變量
此電腦 -> 屬性 -> 高級系統(tǒng)設(shè)置 -> 環(huán)境變量 -> 系統(tǒng)環(huán)境變量 -> PATH -> 編輯
在這里插入圖片描述
新增 D:\FFmpeg\ffmpeg-6.0-essentials_build\bin 到環(huán)境變量中
在這里插入圖片描述

③、測試

<1>、 查看 FFmpeg 的版本
cmd 中輸入 ffmpeg -version 檢查一下是否安裝成功
在這里插入圖片描述
這個回顯說明安裝成功

<2>、視頻格式轉(zhuǎn)換測試
我們再做一個測試將 mp4 格式文件轉(zhuǎn)換成 flv 格式文件
D:\Work\test 目錄下有一個 mp4 文件
在這里插入圖片描述
輸入以下命令

ffmpeg -i SampleVideo_1280x720_20mb.mp4 -c copy -f flv SampleVideo_1280x720_20mb.flv

在這里插入圖片描述
完整的回顯信息

D:\Work\test>ffmpeg -i SampleVideo_1280x720_20mb.mp4 -c copy -f flv SampleVideo_1280x720_20mb.flv
ffmpeg version 6.0-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SampleVideo_1280x720_20mb.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01T00:00:00.000000Z
    encoder         : Lavf53.24.2
  Duration: 00:01:57.31, start: 0.000000, bitrate: 1436 kb/s
  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 1048 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Output #0, flv, to 'SampleVideo_1280x720_20mb.flv':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.3.100
  Stream #0:0(und): Video: h264 (Main) ([7][0][0][0] / 0x0007), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 1048 kb/s, 25 fps, 25 tbr, 1k tbn (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1(und): Audio: aac (LC) ([10][0][0][0] / 0x000A), 48000 Hz, 5.1, fltp, 383 kb/s (default)
    Metadata:
      creation_time   : 1970-01-01T00:00:00.000000Z
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 2932 fps=0.0 q=-1.0 Lsize=   20659ktimeB =00:01:57.29 bitrate=1442.9kbits/s speed=1.27e+03x
video:15013kB audio:5497kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.726677%

D:\Work\test>

此刻再看 D:\Work\test 目錄下多了一個名為 SampleVideo_1280x720_20mb.flv 的文件
在這里插入圖片描述


測試視頻素材下載

各種格式,MP4, flv, mkv, 3gp 視頻下載地址:
https://www./index.php#sample-mp4-video
https://docs./projects/esp-adf/en/latest/design-guide/audio-samples.html


我的qq:2442391036,歡迎交流!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多