大牛直播錄像SDK

大牛直播錄像SDK可作為單獨功能模塊使用(如同時多路錄像存檔),亦分布于以下模塊,和其他模塊組合調用

  1. windows/android/iOS推送端SDK Demo和windows/android/iOS播放端SDK Demo集成了錄像SDK;
  2. 大牛直播錄像SDK不同于普通錄像接口,更智能,和推送、播放、轉發、內置輕量級RTSP服務功能完全分離,支持隨時錄像;
  3. 此外,大牛直播錄像SDK在錄像過程中,支持切換不同URL,如兩個URL配置一致,則可以錄制到同一個MP4文件,如不一致,可自動分割到下一個文件;
  4. 大牛直播錄像SDK支持設置單個錄像文件大小、錄像路徑等,并支持純音頻、純視頻、音視頻錄制模式;
  5. Windows播放SDK支持音頻(PCMU/PCMA,Speex等)轉AAC后再錄像;
  6. 支持RTSP/RTMP H.265(hevc)錄制到MP4文件
  7. 從開始錄像,到錄像結束均有event callback上來,網絡堵塞、音視頻同步均做了非常友好的處理,大牛直播錄像SDK是目前市面上為數不多真正好用的商業化錄像SDK。

功能支持:

  • ?[拉流]支持拉取RTSP流錄像;
  • ?[拉流]支持拉取RTMP流錄像;
  • ?[推流端錄像]支持RTMP|RTSP推送端同步錄像;
  • ?[輕量級RTSP服務錄像]支持輕量級RTSP服務SDK同步錄像;
  • ?[推流端錄像實時暫停/恢復]支持推送端錄像過程中實時暫停錄像、恢復錄像
  • ?[邏輯分離]大牛直播錄像SDK不同于普通錄像接口,更智能,和推送、播放、轉發、內置輕量級RTSP服務SDK功能完全分離,支持隨時錄像;
  • ?[url切換]在錄像過程中,支持切換不同URL,如兩個URL配置一致,則可以錄制到同一個MP4文件,如不一致,可自動分割到下一個文件;
  • ?[參數設置]支持設置單個錄像文件大小、錄像路徑等,并支持純音頻、純視頻、音視頻錄制模式;
  • ?[音頻轉碼]支持音頻(PCMU/PCMA,Speex等)轉AAC后再錄像;
  • ?[265支持]支持RTSP/RTMP H.265錄制到MP4文件;
  • ?[推送端265錄像]推送端SDK支持H265錄像;
  • ?[推送端外部編碼數據對接錄像]支持推送端外部編碼后數據(H.264/AAC)對接錄像;
  • ?[事件回調]從開始錄像,到錄像結束均有event callback上來,網絡堵塞、音視頻同步均做了非常友好的處理。

對應Demo:

  • ?Windows測試程序:SmartPlayer.exe;
  • ?Windows C++工程:WIN-PlayerSDK-CPP-Demo;
  • ?Windows C#工程:WIN-PlayerSDK-CSharp-Demo;
  • ?測試程序:SmartPublisherDemo.exe;
  • ?C++工程:WIN-PublisherSDK-CPP-Demo;
  • ?C#工程:WIN-PublisherSDK-CSharp-Demo。
  • ?Android工程:SmartPlayerV2;
  • ?iOS工程:SmartiOSPlayerV2;
  • ?Android工程:SmartPublisherV2;
  • ?iOS工程:SmartiOSPublisherV2。

相關接口實現(以播放端為例):

Windows平臺:

		/*
		設置本地錄像目錄, 必須是英文目錄,否則會失敗
		*/
		NT_UINT32(NT_API *SetRecorderDirectory)(NT_HANDLE handle, NT_PCSTR dir);

		/*
		設置單個錄像文件最大大小, 當超過這個值的時候,將切割成第二個文件
		size: 單位是KB(1024Byte), 當前范圍是 [5MB-800MB], 超出將被設置到范圍內
		*/
		NT_UINT32(NT_API *SetRecorderFileMaxSize)(NT_HANDLE handle, NT_UINT32 size);

		/*
		設置錄像文件名生成規則
		*/
		NT_UINT32(NT_API *SetRecorderFileNameRuler)(NT_HANDLE handle, NT_SP_RecorderFileNameRuler* ruler);


		/*
		設置錄像回調接口
		*/
		NT_UINT32(NT_API *SetRecorderCallBack)(NT_HANDLE handle,
			NT_PVOID call_back_data, SP_SDKRecorderCallBack call_back);

		/*
		啟動錄像
		*/
		NT_UINT32(NT_API *StartRecorder)(NT_HANDLE handle);

		/*
		停止錄像
		*/
		NT_UINT32(NT_API *StopRecorder)(NT_HANDLE handle);

Android平臺:

	/**
	 * Create file directory
	 *
	 * @param path,  E.g: /sdcard/daniulive/rec
	 *
	 * <pre> The interface is only used for recording the stream data to local side. </pre>
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerCreateFileDirectory(String path);

	/**
	 * Set recorder directory.
	 *
	 * @param path: the directory of recorder file.
	 *
	 * <pre> NOTE: make sure the path should be existed, or else the setting failed. </pre>
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerSetRecorderDirectory(long handle, String path);

	/**
	 * Set the size of every recorded file.
	 *
	 * @param size: (MB), (5M~500M), if not in this range, set default size with 200MB.
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerSetRecorderFileMaxSize(long handle, int size);

	/**
	 * Start recorder stream
	 *
	 * @param handle: return value from SmartPlayerOpen()
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerStartRecorder(long handle);

	/**
	 * Stop recorder stream
	 *
	 * @param handle: return value from SmartPlayerOpen()
	 *
	 * @return {0} if successful
	 */
	public native int SmartPlayerStopRecorder(long handle);

iOS平臺:

/**
 * 錄像相關:
 *
 * @param path 錄像文件存放目錄
 *
 * @return {0} if successful
 */
- (NSInteger)SmartPlayerSetRecorderDirectory:(NSString*)path;

/**
 * 錄像相關:
 *
 * @param size 每個錄像文件的大小 (5~500M), 默認200M
 *
 * @return {0} if successful
 */
- (NSInteger)SmartPlayerSetRecorderFileMaxSize:(NSInteger)size;

/**
 * 錄像相關:
 *
 * Start recorder(開始錄像)
 *
 * @return {0} if successful
 */
- (NSInteger)SmartPlayerStartRecorder;

/**
 * 錄像相關:
 *
 * Stop recorder(停止錄像)
 *
 * @return {0} if successful
 */
- (NSInteger)SmartPlayerStopRecorder;
污污直播app-污污直播破解版永久免费版