利用bat批处理文件对视频序列进行编解码
在学习VTM代码时经常需要对序列进行编解码,从而生成可执行文件EncoderApp.exe和DecoderApp.exe。不过其实我们也可以离线式将这两个.exe文件通过bat批处理来执行对序列的编解码,就不需要重复地在VS中进行操作了。
一、bat批处理文件
bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。
echo、@、call、pause、rem 是批处理文件最常用的几个命令:
echo 表示显示此命令后的字符;
echo off 表示在此语句后所有运行的命令都不显示命令行本身;
@ 与echo off相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身;
call 调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完那条命令后将无法执行当前文件后续命令);
pause 运行此句会暂停,显示Press any key to continue… 等待用户按任意键后继续;
rem 表示此命令后的字符为注释行,不执行。
二、通过bat批处理文件对序列进行编解码
接下来试着用bat批处理对序列进行编解码:
第一步:在桌面上新建一个文件夹,再在文件夹中新建一个txt文本文件;
第二步:将txt文本文件后缀名改成.bat;
第三步:将VTM中已经生成的可执行文件EncoderApp.exe和DecoderApp.exe复制在刚刚新建的文件夹内,同时把序列配置文件和编码方式配置文件复制在新建文件夹内(注意这时序列配置文件中的序列.yuv文件的路径要改成绝对路径,因为并没有把要编码的.yuv文件复制过来),如图所示:
第四步:使用notepad或其他文本编辑器打开.bat文件可在里面进行命令编辑;
第五步:输入命令行参数按顺序执行进行编解码,如下图,(其中-f 16表示编码2帧);
第六步:保存编辑操作,然后退出notepad界面;
第七步:直接双击点开.bat文件即可执行刚刚输入的命令行了~编解码后结果如下,红色框住的就是编解码生成的文件~
这里注意的是,若没有在命令行编辑界面加入pause等其他命令,则程序是按照顺序执行下来不会停的~
若我在命令行中间加入pause命令,同时我只编解码一帧(-f 8)节约时间~
则cmd界面结果如下图所示,出现“请按任意键继续”,表示程序经过编码之后暂时挂起,按下任意键则继续完成解码~
结果和前面的一样:
总之,bat批处理确实挺方便的~~