现在的位置: 首页 > 综合 > 正文

MVC学习笔记–2

2019年04月21日 ⁄ 综合 ⁄ 共 2407字 ⁄ 字号 评论关闭

     JMVC8.3,测试编码,解码,和流的合成。

     先测试H264AVCEncoderLibTestStaticd.exe,选择整个解决方案,属性,通用属性,启动项目,单启动项目,然后选择H264AVCEncoderLibTestStaticd。再选择这个工程,属性,调试属性,设置命令参数和工作目录,我的设置是:

    如果是命令行调用,使用H264AVCEncoderLibTestStaticd -vf encoderMVC.cfg 0

    总共有8个view,就要调用或者调试8次。写成批处理:

@echo off
echo 0 2 1 4 3 6 5 7 
H264AVCEncoderLibTestStaticd.exe -vf E:\jmvc\JMVC\myconfig\encoder\encoderMVC.cfg 0 >> log0.txt
 
H264AVCEncoderLibTestStaticd.exe -vf E:\jmvc\JMVC\myconfig\encoder\encoderMVC.cfg 2 >> log2.txt

H264AVCEncoderLibTestStaticd.exe -vf E:\jmvc\JMVC\myconfig\encoder\encoderMVC.cfg 1 >> log1.txt

H264AVCEncoderLibTestStaticd.exe -vf E:\jmvc\JMVC\myconfig\encoder\encoderMVC.cfg 4 >> log4.txt

H264AVCEncoderLibTestStaticd.exe -vf E:\jmvc\JMVC\myconfig\encoder\encoderMVC.cfg 3 >> log3.txt

H264AVCEncoderLibTestStaticd.exe -vf E:\jmvc\JMVC\myconfig\encoder\encoderMVC.cfg 6 >> log6.txt
 
H264AVCEncoderLibTestStaticd.exe -vf E:\jmvc\JMVC\myconfig\encoder\encoderMVC.cfg 5 >> log5.txt

H264AVCEncoderLibTestStaticd.exe -vf E:\jmvc\JMVC\myconfig\encoder\encoderMVC.cfg 7 >> log7.txt

echo It is done.
pause

    相对应的cfg文件,开头要写成:

# JMVM H.264/AVC Extension Configuration File
#_640x480_25p
#============================== GENERAL ==============================
InputFile               ..\ballroom                  # Input  file
OutputFile              output                                # Bitstream file

    这样,就把编码的批处理文件、cfg文件,和编码结果都放在了encoder子目录里。生成结果是output_0.264~output_7.264,以及recon_0.yuv~recon_7.yuv。注意生成的顺序应该是0 2 1 4 3 6 5 7

    编码完成后,应该将各路的264文件合称为一个。建立子目录assembler,新建批处理:

@echo off
echo assembler start...
MVCBitStreamAssemblerStaticd.exe -vf assembler.cfg >> assembler.txt
echo assembler done
pause

      cfg文件:

#============================== Assembler: View Encode order ==========================
OutputFile              ballroom.264
NumberOfViews           8
InputFile0              ..\encoder\output_0.264 
InputFile1              ..\encoder\output_2.264
InputFile2              ..\encoder\output_1.264 
InputFile3              ..\encoder\output_4.264
InputFile4              ..\encoder\output_3.264 
InputFile5              ..\encoder\output_6.264 
InputFile6              ..\encoder\output_5.264 
InputFile7              ..\encoder\output_7.264 

      执行得到文件ballroom.264

      下面看解码:

      解码不需要cfg文件,新建目录decoder,建立批处理如下:

@echo off
echo decoder start...
H264AVCDecoderLibTestStaticd.exe ..\assembler\ballroom.264 ballroom.yuv 8 >> decoder.txt

echo decoder done
pause

      得到ballroom_0.yuv~ballroom_7.yuv,大小与编码时生成的recon_0.yuv~recon_7.yuv相同。

      本来还要测试 提取功能,但是MVCBitStreamExtractorStaticd怎么调也调不通,郁闷。

      【注意】

      1.整个过程需要注意的是文件的写法,一般指定文件名,后面的下划线和数字编号会自动添加。但是解码的时候,ballroom.yuv,这里的扩展名yuv一定要添加,不然就出错。

      2.顺序按0 2 1 34 3 6 5 7,不能打乱。解码时的参数8是指个数,不是指序号。

 

      接下来把MVCBitStreamExtractorStaticd放一放,先好好看懂代码和原理吧。

抱歉!评论已关闭.