大多數RTSP的播放都面向直播場景,如果延遲過大會嚴重影響體驗。所以,低延遲是衡量一個好的RTSP播放器非常重要的指標,目前大牛直播SDK的RTSP播放延遲控制在幾百毫秒,VLC在幾秒。
除了H.264,還需要支持H.265,目前市面上的RTSP H.265攝像頭越來越多,支持H.265的RTSP播放器迫在眉睫,此外,單純的播放H.265還不夠,還需要可以能把H.265的數據能錄制下來。

EasyPlayer-RTSP-Win64位代碼編譯升級
大牛直播SDKRTSP播放器EasyPlayer-RTSP-Win支持多路拉流播放,而拉流解碼的過程需要占用系統資源,而我們都知道32位程序最多只能利用4G的內存,而現在動則8G,16G的內存空間是完全不能被利用的;所以,為了充分利用內存資源,EasyPlayer-RTSP-Win也將會升級到64位版本。
1.新建64位編譯平台

所有依賴庫編譯成64位
1> gpac庫編譯64位
官網下載gpac源碼,通過cmake生成對應的VS版本,然后編譯64位平台即可;
2> libEasyAACEncoder庫編譯64位
3> ffmpeg編譯64位
ffmpeg可從官網下載源碼,通過交叉編譯或者cmake編譯64位;
4> IntelHardCodec編譯64位
5> SaveJPGDll庫編譯64位
6> FFDecoder編譯64位
7> D3DRender編譯64位
這里鄭重感謝Gavin大神百忙之中抽出時間幫忙編譯64位版本庫;
8> EasyRTSPClient編譯64位
2.程序編譯64位並兼容32位調試
程序編譯很簡單,指定編譯平台,然后附加對應平台的依賴項的頭文件和庫文件即可;
通過本次編譯64位版本,遇到的幾個問題及注意事項:
(1)程序依賴的DLL庫編譯64位的通過要注意其所依賴的庫(系統的或者第三方的)都要編譯的64位支持;
(2)如果沒有源碼,由第三方提供的庫,如果需要兼容編譯,可以通過宏定義的方式解決,如:
#ifdef _WIN64
#include "D3DRender\include\x64\D3DRenderAPI.h"
#pragma comment(lib, "EasyRTSPClient/lib/x64/libEasyRTSPClient.lib")
#pragma comment(lib, "FFDecoder/lib/x64/EasyDecoder.lib")
#pragma comment(lib, "./D3DRender/lib/x64/D3DRender.lib")
#pragma comment(lib, "IntelHardCodec/lib/x64/IntelHardCodec.lib")
#pragma comment(lib, "libEasyAACEncoder/lib/x64/libEasyAACEncoder.lib")
// 增加MP4box和SaveJPG庫的支持 [9/20/2016 dingshuai]
// JPGSave
#pragma comment(lib, "SaveJPGDll/lib/x64/SaveJpgDll.lib")
#else
#include "D3DRender\include\x86\D3DRenderAPI.h"
#pragma comment(lib, "EasyRTSPClient/lib/x86/libEasyRTSPClient.lib")
#pragma comment(lib, "FFDecoder/lib/x86/EasyDecoder.lib")
#pragma comment(lib, "D3DRender/lib/x86/D3DRender.lib")
#pragma comment(lib, "IntelHardCodec/lib/x86/IntelHardCodec.lib")
#pragma comment(lib, "libEasyAACEncoder/lib/x86/libEasyAACEncoder.lib")
#endif
目前x64的系統已廣泛使用,未來主流程序都應該是64位的,為了充分利用內存資源,也建議大家都將目前的32位程序升級成64位;最新兼容64和32位的EasyPlayer-RTSP-Win也將發布。
本文轉自:https://blog.csdn.net/TsingSee/article/details/102682467
