原创 用gstreamer寫的一個播放器

這個程序是要實現linux下的一個簡單播放器,要求播放器能夠向遠端服務器發送消息,相應鍵盤消息,切換節目具體功能是:響應鍵盤的N、P和數字鍵,N:下一個節目;P:前一個節目;數字鍵:選擇對應的節目在切換節目的時候需要向遠端服務器發送響應的

原创 iOS 解決一個因三方靜態庫衝突產生的duplicate symbol的問題

http://www.cnblogs.com/rayshen/p/5160218.html 最近在開發項目時編譯三方.a時出現了衝突,原因是存在duplicate symbol。 <1>模擬器編譯時,應用的即時通訊模塊採用的三方

原创 ubuntu14.04上VLC編譯問題

最近將VLC-2.1.6在ubuntu上編譯,由於gstreamer版本是0.10,因此不能用vlc 2.0之後的版本. 編譯時報錯,錯誤信息如下: /usr/bin/ld: /usr/local/lib/libavformat.a(al

原创 一個支持socket併發的方案

TCP 的socket有創建、綁定、監聽、收數據等過程,如果需要創建一個能夠監聽多個客戶端鏈接的後臺socket,如何支持併發訪問呢? 首先需要確定在什麼地方需要支持併發:顯然前三步都是初始化過程,不需要併發支持;收數據的過程是需要支持併

原创 RFC5766-TURN協議

http://blog.csdn.net/shenxin870409/article/details/42978693 摘要    如果一臺主機處於NAT後面,那麼在一定條件下兩臺主機無法之間進行通訊。在這種條件下,

原创 使用GDB調試android模擬器

使用android的模擬器可以調試應用,也可以調試C/C++代碼庫。 調試C/C++代碼時,還可以使用GDB單步調試代碼,跟linux上一樣方便。 1. 準備android代碼:從官網上下載代碼,編譯整個系統,最好選X86的選項    $

原创 實現一個簡單的http服務器

實現一個簡單的http服務器,能夠將本地電腦作爲一個後臺服務器供客戶端訪問。 該實現只是一個簡單的原型,用戶跨域訪問。 1,創建一個私有的socket,採用IP地址+端口號的形式訪問,例如:http://192.168.0.123:303

原创 NuPlayer介紹

簡介 Android2.3時引入流媒體框架,而流媒體框架的核心是NuPlayer。Android4.0之後HttpLive和RTSP協議開始使用NuPlayer播放器,Android5.0(L版本)之後本地播放也開始使用NuPlayer播

原创 修改VLC讀緩衝機制

0x00 前置信息 爲進一步降低延遲,採用極端方法修改VLC讀緩衝機制。 0x01 VLC讀緩衝機制 對於一個rtmp流的讀取,發起端在Demux module中,具體在該模塊的Demux方法中調用ffmepg的接口av_read_fr

原创 Linux 下編譯 VLC for Android

https://jiya.io/archives/compile-vlc-for-android.html 最近在研究VLC播放器,主要目的是使用Android平臺VLC播放器進行RTMP直播,研究目的是爲了降低RTMP直播的延遲,目標

原创 如何在JNI工程中使用第三方庫文件

我們在開發android APP時經常需要調用第三方庫文件,有的是以動態庫的形式提供(.so),有的則是以靜態庫的形式提供(.a),這兩種形式各有優勢: 動態庫是動態加載,只有用到的時候纔會載入到內存;而靜態庫有較好的移植性,不依賴於其他

原创 XCode8下一個undefined symbols for architecture arm64問題的解決

在Xcode7下能夠編譯通過的工程,在XCode8下會報, undefined symbols for architecture arm64 錯誤, 對於該問題網上有很多相關的帖子,也有很多回答,比較多的回答有: 1. 查看自己的工程設置

原创 android如何編譯出適用於不同平臺的庫文件

在開發android的SDK時會涉及到如何編譯出適用於各種平臺的庫文件,比如: armeabi, armeabi-v7a, arm64-v8a等, 這個具體依據於不同的平臺,比如:NDK-5r僅提供armeabi和armeabi-v7a兩

原创 ubuntu 上tp-link無線網卡驅動安裝

爲了使安裝了ubuntu系統的臺式機能夠鏈接無線網絡,購買了USB 無線網卡,當然無線網卡分爲很多品牌,這裏介紹兩種: 1. 磊科:無需安裝驅動,在ubuntu上直接可以上網; 2. TP-LINK: 該品牌的無線網卡需要安裝驅動後才能使