原创:x264-060805-vc6 之 main ()函数完全解析

本文介绍了一个使用X264编码器的应用实例,包括如何设置编码参数、处理命令行输入、注册信号捕捉函数及编码过程。通过具体代码展示了从初始化到编码的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

截个图,详细代码附后:


原创:x264-060805-vc6 之 main ()函数完全解析 - 加菲 - 视频会议 - 加菲
 


/****************************************************************************
 * main: 程序入口点
 * 参数:
 * http://wmnmtm.blog.163.com
 *
 ****************************************************************************/
int main( int argc, char **argv )
{
//定义两个结构体
    x264_param_t param;
    cli_opt_t opt; /*一点设置*/

#ifdef _MSC_VER //stdin在STDIO.H,是系统定义的
    _setmode(_fileno(stdin), _O_BINARY); //_setmode(_fileno(stdin), _O_BINARY)功能是将stdin流(或其他文件流)从文本模式   <--切换-->   二进制模式 就是stdin流(或其他文件流)从文本模式   <--切换-->   二进制模式
    _setmode(_fileno(stdout), _O_BINARY);
#endif

//对编码器参数进行设定,初始化结构体对象
    x264_param_default( &param ); //(common/common.c中定义)

    /* 解析命令行,完成文件打开 */
    if( Parse( argc, argv, &param, &opt ) < 0 ) /* 就是把用户通过命令行提供的参数保存到两个结构体中,未提供的参数还以x264_param_default函数设置的值为准 */
        return -1;

    /* 用函数signal注册一个信号捕捉函数 实现“Ctrl+C”退出程序之功能 */
    signal( SIGINT/*要捕捉的信号*/, SigIntHandler/*信号捕捉函数*/ );//用函数signal注册一个信号捕捉函数,第1个参数signum表示要捕捉的信号,第2个参数是个函数指针,表示要对该信号进行捕捉的函数,该参数也可以是SIG_DEF(表示交由系统缺省处理,相当于白注册了)或SIG_IGN(表示忽略掉该信号而不做任何处理)。signal如果调用成功,返回以前该信号的处理函数的地址,否则返回 SIG_ERR。
//sighandler_t是信号捕捉函数,由signal函数注册,注册以后,在整个进程运行过程中均有效,并且对不同的信号可以注册同一个信号捕捉函数。该函数只有一个参数,表示信号值。
printf("\n");
printf("************************************"); printf("\n");
printf("**   http://wmnmtm.blog.163.com   **"); printf("\n");
printf("************************************"); printf("\n");
/* 开始编码*/
    return Encode( &param, &opt ); //把两个参数提供给Encode,而它们已经保存上了命令行的参数,此函数在 x264.c 中定义 
//Encode内部循环调用Encode_frame对帧编码
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值