This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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,那么传入的参数是否需要改变呢?

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

  • 你好,

    TI的视频编解码提供的都是库文件,你确认你看到的是mpeg4编解码的源码么?

    从下面的文档看,mpeg4编解码库已经集成在codec combo里面了,你只要通过CE创建正确的instance,使用visa接口调用就可以了。

    http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_3_10/latest/exports/cs2dm6467_1_00_00_10_releasenotes.pdf

  • 你好,感谢回复:
       我用的是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编解码,除此外没做别的更改,然后执行,执行没有错误,但是视频没有传成功。
    描述的有点长,希望能描述清楚,我想知道,我这样改对不对,如果不对,我该如何进行修改呢?
  • 你好,

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

  • 你好,

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

    我打开了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编解码的不同而有所变化呢?

  • 你好,

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

  • 你好,

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

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

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

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

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

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

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

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

    所以我想请教您:

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

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

  • 你好,

    把视频文件保存到本地,利用视频分析软件,例如elecard stream eye,看看是否分析出来是mpeg4格式。

  • 你好,

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

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

      谢谢。

  • 你好,

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

  • 您好,

        我操作的过程是这样的,我把之前的编码后的视频数据输出到本地文件中,然后通过解码程序读取该文件,通过这种方式对H.264进行解码是正常的,可以将数据转化为video格式并播放成功。  

          但是用同样的方式读取mpeg4格式文件(该文件可在PC上播放,确定为mpeg4格式文件)时,出现错误是“can not open mepg4dec”,我在想出现这个问题的原因是否是DSP端没有成功创建Mpeg4dec 的instance,我想问问,如何确定在DSP端运行了mpeg4dec 这个instance呢?

        您以前遇到过这种问题吗,大概如何解决的?

  • 抱歉图片看起来有点费劲,希望能得到您的建议。

  • 你好,

    从之前我提供的releasenote链接的文件看,mpeg4dec是包含在codec combo里的。

    你现在解码的mpeg4文件是dm6467编码出来的么?建议先用DM6467自己编码出来的mpeg4文件做解码测试。

  • 你好,

         我用DM6467自己编码出来的mpeg4文件做解码测试,出现的问题是一样的,仍然是创建mpeg4dec instance出错,但是mpeg2和H.264我都试过,都没有出现过这个问题。

       所以我认为问题应该不是出现在测试的文件上,而且我在DSP server的releasenote中也看到,mpeg4dec是被编译到DSP server端了,而且在DSP server的配置文件中也可以看到这些信息。 所以是不是调用的接口方面有什么问题呢,对了,我创建DSP端的instance时的错误码为0x80008008,我查到这个错误是“一般错误”,导致这个错误的一般原因您那边清楚吗?