TI中文支持网
TI专业的中文技术问题搜集分享网站

DM6467t是否支持MPEG4编解码,如何将h.264demo修改为mpeg4程序

你好,

我最近想在DM6467T平台上实现MPEG4视频编解码,我看到官方提供的DVSDK给提供了MPEG4编解码源码,而且也有h.264视频编解码的DEMO程序。

我目前已经实现了使用h.264的demo程序进行视频的编解码了,那么如何在这个基础上进行修改为MPEG4呢?

我想问问:

1、DM6467T能否支持MPEG4视频编解码?

2、如果支持,如何通过ARM端调用该编解码?

3、如果通过H.264的Demo修改为mpeg4,那么传入的参数是否需要改变呢?

有没有什么配置步骤的文档可以参考的?

baoguo cao:

回复 Chris Meng:

你好,感谢回复:
   我用的是DVSDK3_10_00_19,所有编解码在目录cs2dm6467_1_00_00_10下,就像您说的,ti提供了编解码的库文件,那么在编译时,这些库文件应该被编译进了DSP的服务器端形成cs.x64P可执行文件。mpeg4编解码也应该被编译进了该执行文件,那么在ARM端就可以用VISA进行调用了吧?

       ARM端,dvsdk内有dvsdk_demos_3_10_00_16目录,内有dm6467调用h.264编解码的demo,通过编译后生成可执行程序可以在单板上成功执行(可以对视频编解码)。

     我仔细看了encodedecode目录下的源码(想在本地自环),源码本来是调用h.264编解码,我现在通过修改codecs.c文件让其调用mpeg4编解码,除此外没做别的更改,然后执行,执行没有错误,但是视频没有传成功。
描述的有点长,希望能描述清楚,我想知道,我这样改对不对,如果不对,我该如何进行修改呢?

Chris Meng:

回复 baoguo cao:

你好,

请问你创建instance的时候,是否创建的是mpegenc/mpeg4dec的instance?

baoguo cao:

回复 Chris Meng:

你好,

公司上网不太方便,回复较慢。

我打开了mpeg4enc和mpeg4dec的instance。

我在主函数中创建了一个线程(ARM端),然后在这个线程中调用dmai_2_10_00_12中定义的接口

Venc1_create(hEngine, envp->videoEncode, encParams, encDynParams);

后面这两个参数是传入的参数,参数是使用的dmai中定义的默认参数,最终这个函数会调用code_engine中的函数

VIDENC1_create( ) 创建mpeg4enc或者mpeg4dec的instance。

执行的过程并没有报错,所以我觉得应该是创建成功了,另外我想后面传入的参数会不会根据h.264或者mpeg4编解码的不同而有所变化呢?

Chris Meng:

回复 baoguo cao:

你好,

编码和解码都没有报错么?如果是,你能否先尝试编码,看编码输出的文件是否是正确的mpeg4码流?

baoguo cao:

回复 Chris Meng:

你好,

编解码都没有报错,今天我只进行mpeg4编码,下图是我的打印信息

然后将编码后的数据输出到文件中,得到码流如下

我上网搜索了一下,感觉这应该就是mpeg4的码流。

但是我想通过视频播放软件(VLC)播放这段码流,并没有播放成功,下一步我打算通过网络将这个数据流传输到PC机上,然后播放网络流看看是否可以。

baoguo cao:

回复 Chris Meng:

您好,非常感谢您的耐心解答,我最近被别的事情耽搁。

我这两天又尝试通过RTP将这个编码后的视频数据发送到PC上,通过上位机播放,但是失败了,有两个原因,

第一个原因是我不确定关于MPEG4的.sdp文件是否正确;

第二个原因不确定视频数据是否被正确的格式编码。

所以我想请教您:

通过我上面的截图分析,我所得到的的文件是否为MPEG4编码格式的文件?

一般怎么测试编码后视频流?

baoguo cao:

回复 Chris Meng:

你好,

   非常感谢您的热心回复,我将编码后的数据写到本地后,通过这个软件分析是mpeg4格式,而且可以播放。

接下来我去看解码部分的程序,如果有问题再过来咨询。

  谢谢。

Chris Meng:

回复 baoguo cao:

你好,

有些解码软件需要解码的是一个有文件container的文件,例如avi,mp4,你可以看看是不是这方面的原因。

赞(0)
未经允许不得转载:TI中文支持网 » DM6467t是否支持MPEG4编解码,如何将h.264demo修改为mpeg4程序
分享到: 更多 (0)