原创 再論大端小端

1、大端小端的問題只跟CPU有關,與操作系統無關 2、大端既網絡字節序 3、小端存放法則:高位存在高地址,低位存在低地址,也可以說是怎麼存 怎麼取,如int a = 0x1234abcd ,12爲高位,34爲較低位,小端存放 時在內存中的

原创 ffmpeg常用轉碼參數解析

轉碼命令示例 $ ffmpeg -i input.flv -vcodec h264 -s 960x540 -pix_fmt yuv420p -b 800k -r 25.0 -g 50 / –acodec aac -ab 64k –ac

原创 windows下常用數據類型總結

類型 對應的內置類型 佔用長度(字節) DWORD unsigned long 4 BYTE unsigned char 1 WORD unsigned short 2 WPARAM unsigned int 4 LPARAM long

原创 windows 10 x64環境下編譯帶有ffplay的ffmpeg

windows下編譯ffmpeg的核心在於要搭建一個類linux的編譯環境,換句話說就是需要在windows環境中運行gcc、make等命令工具。本文詳細介紹windows下編譯環境的搭建與ffmpeg的編譯過程,併成功生成ffplay

原创 使用nginx做爲http-flv服務如何解決跨域問題

什麼是跨域 跨域是指瀏覽器的同源策略限制,這個策略會阻止一個域的javascript腳本和另外一個域的內容進行交互。如果一個請求url的協議、域名、端口三者之間任意一個與當前頁面的url不同即爲跨域。 如下圖所示即爲跨域時的報錯: 使用

原创 小談動態鏈接庫

1、動態鏈連庫可以使用__declspec(dllexport)和def文件兩種方式實現,兩種方式只能同時有一種 2、如果使用extern "C"的話,則導出的函數按照C語言的命令規則,C的方式實際的函數名和你寫的一樣, 即可以用Load

原创 當類的指針被賦值爲NULL時,類的哪些成員還可以被該指針調用

該問題源自於一道面試題,題目如下所示: 看如下代碼,請問能不能編譯通過?如果能編譯通過能不能運行成功?並說明原因 class test { public: int fun(){return 1;}; }; int main () {

原创 socket在發送一段時間數據後send卡死問題的解決

問題描述: 近期在對新做的服務器做壓力測試時,發現服務端在接收一陣子數據之後便不再響應,不能接收新的連接,也不能接收新的數據。並且服務端接收到的數據個數非常有規律,每次都基本固定。 架構: 服務端基於select模型,測試客戶端爲soc

原创 C++中爲什麼要使用斷言

斷言assert是僅在debug下有效的宏,當其中的條件爲假時,觸發錯誤提示。 使用斷言的目的是捕捉不應該發生的非法情況。注意:不要混淆非法情況與錯誤情況之間的區別,後者的出現是因爲代碼錯誤,是一定要作出處理的。 如何使用: 1、在函數的

原创 Windows線程同步常用鎖的分析

1、線程同步常用的四種鎖 Event(事件)、Mutex(互斥量)、CrititicalSection(臨界區)、Semaphore(信號量) 2、四種鎖的區別 1> Event是一個允許一個線程在某種情況發生時,喚醒另外一個線程的同步對

原创 Python實現的軟件狗

下面代碼實現了一個軟件狗,被監控的程序做爲狗的子程序存在,程序名稱用參數傳入,程序退出後會自動啓動。 #!/usr/bin/python import subprocess import sys import time def rest

原创 出現“發生訪問衝突”類型錯誤的解決方法

若出現“***exe中的0x***處未處理的異常:0x***讀取位置0x***時發生訪問衝突”這樣的錯誤,則說明訪問了不屬於自己的內存空間,可按照下列順序查明原因: 1、數組太小,卻給它賦了一個長度超過下標的值; 2、句柄或指針在使用前被

原创 Linux動態庫的生成與使用指南

Linux下動態庫文件的文件名形如 libxxx.so,其中so是 Shared Object 的縮寫,即可以共享的目標文件。 在鏈接動態庫生成可執行文件時,並不會把動態庫的代碼複製到執行文件中,而是在執行文件中記錄對動態庫的引用。 程序

原创 大數字符串加法

最近在整理總結舊知識,自己寫的一個大數字符串加法算法,供大家參考: char *StrAddStr(const char *sub1, const char *sub2) { if (sub1 == NULL && sub2 ==

原创 H264畫質分類

H264分爲BP、EP、MP、HP四種畫質: BP:Baseline Profile 基本畫質。支持I/P幀,只支持無交錯(Progressive)和CAVLC EP:Extended Profile 進階畫質。支持I/P/B幀,只支持無