RTSP流怎麼錄製

daniulivesdk發表於2018-07-23

大牛直播錄影SDK可作為單獨功能模組使用(如同時多路錄影存檔),亦分佈於以下模組,和其他模組組合呼叫

  1. windows/android/iOS推送端SDK Demo;
  2. windows/android/iOS播放端SDK Demo;

大牛直播錄影SDK不同於普通錄影介面,更智慧,和推送、播放、轉發、內建輕量級RTSP服務功能完全分離,支援隨時錄影

此外,大牛直播錄影SDK在錄影過程中,支援切換不同URL,如兩個URL配置一致,則可以錄製到同一個MP4檔案,如不一致,可自動分割到下一個檔案。

此外,大牛直播錄影SDK支援設定單個錄影檔案大小、錄影路徑等,並支援純音訊、純視訊、音視訊錄製模式。

從開始錄影,到錄影結束均有event callback上來,網路堵塞、音視訊同步均做了非常友好的處理,大牛直播錄影SDK是目前市面上為數不多真正好用的商業化錄影SDK。

相關介面實現:

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;

參考資料:

daniulive/SmarterStreaming


相關文章