原创 C/C++中數據類型在不同平臺下所佔字節數

標準的32位的系統: char 1個字節 short 2個字節 int 4個字節 long: 4個字節 float: 4個字節 double: 8個字節 long long: 8個字節 16位,32位,6

原创 博主實現的流監控

上圖是七牛的流監控,下面是我做的一個高仿版,基於ajax每5秒刷新(異步獲取數據)     點贊 收藏 分享 文章舉報 bixinwei 發佈了38 篇原創文章 · 獲贊

原创 [aac @ 0xb4c620] Specified sample format s16 is invalid or not supported

這個錯誤很多人遇到過,至少聽過。網上也有人說了,是高版本(2.0以後,具體哪個版本,我沒有測驗)導致的。但是這個答案還不夠。所以我進行了詳細實驗。 本文以版本2.8.1爲例。 我分別編譯帶libfdk-aac的ffmpeg,和不額外編譯任

原创 內存分析(三)AVPacket(二)

前面講了avpacket內存模型。本文講結合函數講解,確保程序內存不泄露。 void av_init_packet(AVPacket *pkt);初始化packet的值爲默認值,該函數不會影響data引用的數據緩存空間和size,我們一般

原创 ubuntu編譯支持h265的ffmpeg,ffplay

ffmpeg2.8.1 x264-snapshot-20170521-2245 x265-3.2 SDL-1.2.15 Ubuntu14.04   1.ffmpeg擴展h265,參看金山雲的github。修改了三個文件。 2.x265編譯

原创 H.264碼流分析器,雷霄驊版本人修改版

雷霄驊自然不必多介紹,做音視頻開發的無人不知無人不曉,雷神在h264bitstream基礎上做了一版,不過代碼bug也遺留不少。 目前已知bug, 1.slice header解析器中sps pps未保存,導致實際的slice heade

原创 ffmpeg實現視頻實時動態時間水印

首先看下效果 左上角的實時當前時間,純c完成。下面的是hello ffmpeg字樣是avfilter的drawtext實現。 動態時間水印,其實ffmpeg有命令可以實現,不過我在windows下發現用不了,而且轉換出來的圖片會質量變差

原创 讓大疆靈眸 OSMO 口袋雲臺相機支持直播

https://www.dji.com/cn/osmo-pocket?site=brandsite&from=landing_page 這是大疆靈眸 OSMO 口袋雲臺相機的產品官網。 該產品可以錄製高清1080p mp4或mov格式的視

原创 關於適配不同幀率的丟幀補幀策略

某些時候,我們會遇到一個需求,就是輸入幀率是25,輸出幀率是30.或者30到25等等幀率由小到大,或由大到小, 且輸出幀率是固定幀率。這種情況下,就涉及到要做丟幀或補幀處理。 實現的手段,目前我投入實際項目中的有兩種方式,第一種是構造一個

原创 FFmpeg2.6.9源碼分析AVPacket內存模型

先從一段代碼開始 void initPakcet(AVPacket *packet) { av_init_packet(packet); packet->data = NULL; packet->size = 0; } AVPa

原创 全網最深刻的理解音頻轉碼swr_convert

之前關於ffmpeg的博客,認可度還蠻高的,我也很受鼓舞,不過也有些汗顏,以前的博客不排除也有因爲當時理解不夠深刻,而 出現代碼寫的也可能有問題。所以我也有必要把我現在爲止的一些理解再分享出來,絕對是乾貨。今天只說音頻。 swr_conv

原创 博主Qt+ffmpeg實現的導播臺

支持運行過程中動態添加多路流和暫停關閉流等操作 支持各路輸入流的音頻試聽和視頻預覽 支持多路流實時無縫切換 支持輸入流的流狀態預覽 支持不同幀率的輸入流 支持本地視頻 Qt是新手,所以界面優點醜。

原创 幀率變化對轉碼的影響

假設輸入流是網絡實時直播流,每幀是66ms (幀率15) 現在輸出流每幀是40ms (幀率25) 假設現在取到了第一幀視頻幀(耗時爲0),解碼加編碼總共耗時爲20ms, 即第一幀就是在20ms推出去的。 然後取第二幀,第二幀是第66

原创 視頻保存爲yuv文件

視頻保存yuv文件,應考慮轉換成什麼yuv文件格式以及爲什麼要轉換格式,還有改變視頻畫面寬高,核心函數是sws_scale /** * 本程序實現了視頻文件解碼爲YUV數據。 * */ #include <stdio.h> exter

原创 兩張yuv圖片疊加

程序實現將一個400x400的yuv420p小圖,覆蓋在一張640x480的yuv420p大圖上 #include <stdio.h> #include <stdint.h> #include <cstring> int main(in