# FFMediaStream.pro # 基于 MPP (Rockchip 硬件编解码) + FFmpeg-rockchip (RTSP 传输 + swscale 格式转换) 的二次封装 # 提供 RTSP 推流 (IVrFFMediaPusher) 和 RTSP 拉流 (IVrFFMediaPuller) 接口 # # 注意:FFmpeg-rockchip 的 .a 文件编译时未加 -fPIC,不能链入动态库(.so), # 因此本模块使用 staticlib,FFmpeg .a 由最终可执行文件链接。 CONFIG -= qt TEMPLATE = lib CONFIG += c++17 # 静态库:FFmpeg .a(非 PIC)无法打入 .so,改为在可执行文件链接阶段解析 CONFIG += staticlib win32-msvc { QMAKE_CXXFLAGS += /utf-8 QMAKE_CFLAGS += /utf-8 } # 头文件路径 INCLUDEPATH += ./Inc INCLUDEPATH += ./_Inc INCLUDEPATH += $$PWD/../../Utils/VrCommon/Inc INCLUDEPATH += $$PWD/../../Utils/VrUtils/Inc # MPP 头文件(Rockchip 硬件编解码原生 API) INCLUDEPATH += $$PWD/../../SDK/mpp/include INCLUDEPATH += $$PWD/../../SDK/mpp/include/rockchip # FFmpeg 头文件(RTSP 传输 + swscale 格式转换) INCLUDEPATH += $$PWD/../../SDK/ffmpeg-rockchip/include SOURCES += \ Src/CVrFFMediaPusher.cpp \ Src/CVrFFMediaPuller.cpp HEADERS += \ Inc/IVrFFMediaPusher.h \ Inc/IVrFFMediaPuller.h \ _Inc/CVrFFMediaPusher.h \ _Inc/CVrFFMediaPuller.h # 链接(仅记录依赖;静态库本身不链接,依赖由最终可执行文件解析) win32:CONFIG(debug, debug|release) { LIBS += -L../../Utils/VrUtils/debug -lVrUtils }else:win32:CONFIG(release, debug|release){ LIBS += -L../../Utils/VrUtils/release -lVrUtils }else:unix:!macx { LIBS += -L../../Utils/VrUtils -lVrUtils } # Windows 下提供编译占位(实现内部用 #ifdef FFMEDIA_PLATFORM_DUMMY 守卫具体调用) win32 { DEFINES += FFMEDIA_PLATFORM_DUMMY LIBS += -lws2_32 } unix:!macx { message("build FFMediaStream for unix (MPP + FFmpeg-rockchip, staticlib)") }