可以看到,x264的main函式較為簡單,主要由x264_param_default、parse、encode和x264_param_cleanup三個函式。首先x264_param_default函式對引數進行預設設定,通過parse解析命令列,然後呼叫encode進行編碼,編碼結束後,呼叫x264_param_cleanup對引數進行cleanup。
**走讀:
realign_stack int main( int argc, char **ar** )
; int ret = 0;
fail_if_error( x264_threading_init(), "unable to initialize threading\n" );
#ifdef _win32
fail_if_error( !get_ar**_utf8( &argc, &ar** ), "unable to convert command line to utf-8\n" );
getconsoletitlew( org_console_title, console_title_size );
_setmode( _fileno( stdin ), _o_binary );
_setmode( _fileno( stdout ), _o_binary );
_setmode( _fileno( stderr ), _o_binary );
#endif
// 設定預設引數值
x264_param_default( ¶m );
/* parse command line */
if( parse( argc, ar**, ¶m, &opt ) < 0 )
ret = -1;
#ifdef _win32
/* restore title; it can be changed by input modules */
setconsoletitlew( org_console_title );
#endif
/* control-c handler */
signal( sigint, sigint_handler );
if( !ret )
ret = encode( ¶m, &opt ); // 編碼
/* clean up handles */
if( filter.free )
filter.free( opt.hin );
else if( opt.hin )
cli_input.close_file( opt.hin );
if( opt.hout )
cli_output.close_file( opt.hout, 0, 0 );
if( opt.tcfile_out )
fclose( opt.tcfile_out );
if( opt.qpfile )
fclose( opt.qpfile );
x264_param_cleanup( ¶m );
#ifdef _win32
setconsoletitlew( org_console_title );
free( ar** );
#endif
return ret;
}
x264_param_default函式走讀:
realign_stack void x264_param_default( x264_param_t *param )
x264使用示例
note x264的編碼示例.使用x264的版本為libx264 115 1.示例是個死迴圈,會源源不斷的編碼,然後將資料寫檔案.2.示例的行為是 編碼1000幀後,取空編碼緩衝區,然後迴圈執行這兩步.author 戈 include include include include stdint.h...
編譯安裝x264
網上也有相應的教程,之所以在這裡重申一遍,是因為我試了網上很多的編譯方法,都出現了問題,為此將此編譯安裝方法記錄下來。首先是 獲取x264 的 git clone git linux 下最簡單編譯步驟 1.切換至源 目錄 2.輸入 configure enable shared enable sta...
x264 param t引數註解
原始 不詳 typedef struct x264 param t cpu 標誌位 unsigned int cpu int i threads 並行編碼多幀 int b deterministic 是否允許非確定性時執行緒優化 int i sync lookahead 執行緒超前緩衝 int i ...