1. 程式人生 > >免費提供基於Live555開發的.NET視訊直播服務庫RtspLiveServer

免費提供基於Live555開發的.NET視訊直播服務庫RtspLiveServer

    RtspLiveServer專案 基於Live555 ProxyServer代理服務並用C# 封裝的RTSP流媒體服務庫,用於轉發區域網中支援Onvif協議 的攝像機並統一提供對外服務埠。API是C++開發,上層應用軟體為C#開發,非常適合.NET程式設計師使用,效能不差。

 一、 介面列表

  1. RLS_Init:初始化服務埠、快取長度、設定訪問使用者及密碼;

  2. RLS_AddMedia:新增視訊RTSP並設定通道名稱;

  3. RLS_RemoveMedia:刪除指定通道名稱的視訊;

  4. RLS_LookUp:查詢指定通道名稱的視訊;

  5. RLS_Listen:啟動服務;

  6. RLS_Stop:停止服務。

二、API定義如下

    public class RtspLiveServer
    {
        /*快取區最小長度*/
        public const int OUTPACKET_MINSIZE = 102400;
        /*介面返回成功*/
        public const int RLS_RET_OK = 1;
        /*介面返回失敗*/
        public const int RLS_RET_Fail = 0;
        /*服務執行*/
        public const int RLS_SERVER_RUN = 1;
        /*服務停止*/
        public const int RLS_SERVER_STOP = 0;
        /// <summary>
        /// 初始化RTSP服務
        /// </summary>
        /// <param name="port">埠</param>
        /// <param name="username">訪問使用者</param>
        /// <param name="password">訪問密碼</param>
        /// <param name="packetSize">快取區長度不能小於100kb</param>
        /// <returns>0失敗,1成功</returns>
        [DllImport("RtspLiveServer.dll")]
        public static extern int RLS_Init(ushort port = 554, uint packetSize=1024000,[MarshalAs(UnmanagedType.LPStr)]string username = null, [MarshalAs(UnmanagedType.LPStr)]string password = null);
        /// <summary>
        /// 新增輸入視訊資源
        /// </summary>
        /// <param name="inputStreamURL">輸入視訊RTSP地址</param>
        /// <param name="streamName">輸出的通道名稱(根據專案實際情況填寫如cam1)</param>
        /// <param name="autoDeleted">True時當視訊資源沒有客戶端連線時自動釋放,適合用於需要重複利用資源的場合;預設為False</param>
        /// <remarks>注意事項:同一輸出通道名[streamName引數]資源不要重複新增,因此新增前會刪除之前名稱相同的視訊資源可能會造成正在播放的使用者斷開</remarks>
        /// <returns>0失敗,1成功</returns>
        [DllImport("RtspLiveServer.dll")]
        public static extern int RLS_AddMedia([MarshalAs(UnmanagedType.LPStr)]string inputStreamURL, [MarshalAs(UnmanagedType.LPStr)]string streamName, [MarshalAs(UnmanagedType.Bool)]bool autoDeleted=false);
        /// <summary>
        /// 刪除視訊資源
        /// </summary>
        /// <param name="streamName"></param>
        /// <remarks>刪除視訊資源時,若有客戶端正在直播時並不強制中斷視訊而且等到所有客戶端退出後才停止視訊流</remarks>
        /// <returns></returns>
        [DllImport("RtspLiveServer.dll")]
        public static extern void RLS_RemoveMedia([MarshalAs(UnmanagedType.LPStr)]string streamName);
        /// <summary>
        /// 查詢視訊資源
        /// </summary>
        /// <param name="streamName"></param>
        /// <returns>0失敗,1成功</returns>
        [DllImport("RtspLiveServer.dll")]
        public static extern int RLS_LookUp([MarshalAs(UnmanagedType.LPStr)]string streamName);
        /// <summary>
        /// 啟動偵聽服務
        /// </summary>
        [DllImport("RtspLiveServer.dll")]
        public static extern void RLS_Listen();
        /// <summary>
        /// 停止服務
        /// </summary>
        [DllImport("RtspLiveServer.dll")]
        public static extern void RLS_Stop();
    }

三、執行效果

四、原始碼執行注意事項

開發工具Vs2015

.NetFramework 4.5

WPF簡單介面非Winform

五、原始碼下載地址

2、csdn資源下載地址

有技術問題可加QQ群_341402289