原创 【秒懂音視頻開發】26_RTMP服務器搭建

從本節開始,正式開啓流媒體相關的內容。 流媒體 基本概念 流媒體(Streaming media),也叫做:流式媒體。 是指將一連串的多媒體數據壓縮後,經過互聯網分段發送數據,在互聯網上即時傳輸影音以供觀賞的一種技術與過程 此技術使得

原创 【秒懂音視頻開發】25_H.264解碼實戰

本文的主要內容:對H.264數據進行解碼(解壓縮)。 如果是命令行的操作,非常簡單。 ffmpeg -c:v h264 -i in.h264 out.yuv # -c:v h264是指定使用h264作爲解碼器 接下來主要講解如何通過代

原创 【秒懂音視頻開發】22_顯示YUV圖片

文本的主要內容是:使用SDL顯示一張YUV圖片,整體過程跟《顯示BMP圖片》比較像。 宏定義 #include <SDL2/SDL.h> #include <QDebug> #define END(judge, func) \

原创 【秒懂音視頻開發】24_H.264編碼實戰

本文的主要內容:使用H.264編碼對YUV視頻進行壓縮。 如果是命令行的操作,非常簡單。 ffmpeg -s 640x480 -pix_fmt yuv420p -i in.yuv -c:v libx264 out.h264 # -c:v

原创 【秒懂音視頻開發】23_H.264編碼

本文主要介紹一種非常流行的視頻編碼:H.264。 計算一下:10秒鐘1080p(1920x1080)、30fps的YUV420P原始視頻,需要佔用多大的存儲空間? (10 * 30) * (1920 * 1080) * 1.5 = 9

原创 【秒懂音視頻開發】21_顯示BMP圖片

文本的主要內容是:使用SDL顯示一張BMP圖片,算是爲後面的《播放YUV》做準備。 爲什麼是顯示BMP圖片?而不是顯示JPG或PNG圖片? 因爲SDL內置了加載BMP的API,使用起來會更加簡單,便於初學者學習使用SDL 如果想要輕鬆

原创 【秒懂音視頻開發】20_視頻錄製02_編程

本文的主要內容:演示如何通過編程採集攝像頭的視頻數據。 整體的流程跟《音頻錄製02_編程》類似。 依賴庫 需要依賴4個庫。 extern "C" { #include <libavdevice/avdevice.h> #include

原创 【秒懂音視頻開發】19_視頻錄製01_命令行

本文的主要內容:演示如何利用命令行採集攝像頭的視頻數據。 閱讀本文之前,建議先閱讀《音頻錄製01_命令行》對常用命令作一個基本認識。 Windows dshow支持的設備 ffmpeg -f dshow -list_devices tr

原创 【秒懂音視頻開發】18_詳解YUV

本文的主角是多媒體領域非常重要的一個概念:YUV。 簡介 YUV,是一種顏色編碼方法,跟RGB是同一個級別的概念,廣泛應用於多媒體領域中。 也就是說,圖像中每1個像素的顏色信息,除了可以用RGB的方式表示,也可以用YUV的方式表示。 v

原创 【秒懂音視頻開發】17_重識圖片

要想學好音視頻,首先得先好好研究一下圖片。 像素 下圖的分辨率是60x50。 用Photoshop放大圖片上百倍後,可以清晰地看到圖片由若干個方形的色塊組成,每一個方形的色塊被稱爲:像素(Pixel)。這張圖片的每一行都有60個像素,

原创 【秒懂音視頻開發】15_編譯FFmpeg

本文來詳細講解一下:如何在Mac、Windows環境下成功編譯FFmpeg。 目標 這裏先提前說明一下,最後希望達到的效果: 編譯出ffmpeg、ffprobe、ffplay三個命令行工具 只產生動態庫,不產生靜態庫 將fdk-aac

原创 【秒懂音視頻開發】14_AAC編碼

AAC(Advanced Audio Coding,譯爲:高級音頻編碼),是由Fraunhofer IIS、杜比實驗室、AT&T、Sony、Nokia等公司共同開發的有損音頻編碼和文件格式。 對比MP3 AAC被設計爲MP3格式的後繼產

原创 【秒懂音視頻開發】13_音頻重採樣

什麼叫音頻重採樣 音頻重採樣(Audio Resample):將音頻A轉換成音頻B,並且音頻A、B的參數(採樣率、採樣格式、聲道數)並不完全相同。比如: 音頻A的參數 採樣率:48000 採樣格式:f32le 聲道數:1 音頻B

原创 【秒懂音視頻開發】12_播放WAV

對於WAV文件來說,可以直接使用ffplay命令播放,而且不用像PCM那樣增加額外的參數。因爲WAV的文件頭中已經包含了相關的音頻參數信息。 ffplay in.wav 接下來演示一下如何使用SDL播放WAV文件。 初始化子系統 // 初

原创 【秒懂音視頻開發】11_PCM轉WAV

播放器是無法直接播放PCM的,因爲播放器並不知道PCM的採樣率、聲道數、位深度等參數。當PCM轉成某種特定的音頻文件格式後(比如轉成WAV),就能夠被播放器識別播放了。 本文通過2種方式(命令行、編程)演示一下:如何將PCM轉成WAV。