原创 [Video and Audio Data Processing] FLV封裝格式解析

0. FLV介紹 (https://zh.wikipedia.org/wiki/Flash_Video#tag%E5%9F%BA%E6%9C%AC%E6%A0%BC%E5%BC%8F) FLV包括文件頭(File Header)

原创 [Video and Audio Data Processing] UDP-RTP協議解析

0. 概念 網絡協議數據在視頻播放器中的位置如下所示。 MPEG-TS封裝格式數據打包爲RTP/UDP協議然後發送出去的流程如下圖所示。圖中首先每7個MPEG-TS Packet打包爲一個RTP,然後每個RTP再打包爲一個UDP

原创 [Linux Device Driver] 系統軟重啓無效

0. 背景 問題表現是系統,系統關機狀態下插入USB線,按power設備不能開機; 同時還有一個現象,關機插入USB充電狀態下,拔掉USB,系統無法shut down; log如下: [ 153.742220] <<GTP-DB

原创 [Thinking in C] 大端轉小端算法

//reverse_bytes - turn a BigEndian byte array into a LittleEndian integer //大端存儲轉小端存儲,舉例0x 00 00 00 09,p[0]=0x00、p[

原创 [Video and Audio Data Processing] 視頻的基礎參數、分辨率,幀率和碼率

1. 圖像與像素 視頻是由連續的圖像構成的。 每一張圖像,我們稱爲一幀(frame)。圖像則是由像素(pixel)構成的。一張圖像有多少像素,稱爲這個圖像的分辨率。比如說1920x1080的圖像,說明它是由橫縱1920x1080個

原创 [CSDN] 微軟雅黑可能導致的博客侵權問題

主要參考以下兩篇博客: https://blog.csdn.net/venusdrogon/article/details/84412291 https://www.cnblogs.com/legiorange/p/104

原创 [Video and Audio Data Processing] 封裝格式與媒體格式

0. 封裝格式(MP4/MKV…) vs 媒體格式(H.264/FLAC/AAC…) 你下載的視頻文件最多的就是這些。這些文件其實類似一個包裹。 它的後綴則是包裹的包裝方式。這些包裹裏面,包含了視頻,音頻,字幕等。當播放器在播放的

原创 [Video and Audio Data Processing] 圖像的表示方法:RGB模型 vs YUV模型

0. YUV模型介紹 光的三原色是紅(Red)、綠(Green)、藍(Blue)。現代的顯示器技術就是通過組合不同強度的三原色,來達成任何一種可見光的顏色。圖像儲存中,通過記錄每個像素紅綠藍強度,來記錄圖像的方法,稱爲RGB模型

原创 [Video and Audio Data Processing] YUV 420數據分離

0. 背景 本文基於雷神的博客,基於Visual Studio 2019,實現YUV數據分離…話說沒想到又見到了大學系主任,講數字圖像處理時候,用到的Lena圖… 1. 下載源代碼,編譯YUV播放器 從雷神的開源github下載

原创 [Video and Audio Data Processing] 將YUV420P像素數據去掉顏色(變成灰度圖)

0. 代碼如下: extern "C" { #ifdef __cplusplus #define __STDC_CONSTANT_MACROS #endif } extern "C" { #include <stdio.h>

原创 [Video and Audio Data Processing] YUV420P像素數據的亮度減半

0. 修改之後,可以直接編譯的代碼如下 extern "C" { #ifdef __cplusplus #define __STDC_CONSTANT_MACROS #endif } extern "C" { #includ

原创 [Video and Audio Data Processing] YUV420P 圖像加邊框

1. 正文 extern "C" { #ifdef __cplusplus #define __STDC_CONSTANT_MACROS #endif } extern "C" { #include <stdio.h> #i

原创 [Video and Audio Data Processing] 生成灰階測試圖

0. 不逼逼,可以編譯通過的代碼如下 以下寫了詳細註釋: extern "C" { #ifdef __cplusplus #define __STDC_CONSTANT_MACROS #endif } extern "C" {

原创 [Video and Audio Data Processing] 分離YUV444P像素數據中的Y、U、V分量

0. 前提 可參考我的以下博客搭建開發環境: https://blog.csdn.net/Codeliang666/article/details/106161156 https://blog.csdn.net/Codelian

原创 [Video and Audio Data Processing] 將PCM16LE雙聲道音頻採樣數據中左聲道的音量降一半

0. 代碼如下 extern "C" { #ifdef __cplusplus #define __STDC_CONSTANT_MACROS #endif } extern "C" { #include <stdio.h>