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.

DM8168的AAC编码为啥不能用flash player播放

DM8168平台,音频编码使用DVRRDK_04.00.00.03的aac codec,录制下载的MP4文件,用JW player播放时为啥只有视频,没有声音?

用VLC播放是可以有声音出来的。

  • 有的播放器能播放出来,有的不能播放出来

    应当是复用兼容的问题了

    你是怎么合成mp4文件的呢 ? mux 的实现 ?

  • 我是调用ffmpeg的库合成mp4文件的。你觉得不是aac音频编码的问题,而是mp4 mux的问题?

  • 对的, 你可以把你的aac文件单独保存一路下来,用软件播放,应当是可以播放出来的,用软件分析应当也是正常的

    部分软件可以播放,部分软件不能播放,就是兼容的问题,在软件做demux处理的时候,音频通道的数据无法解析出来,有的软件就解析出来了

    你可以附近里面加一个文件,大家一起来分析一下

  • 是的,单独保存下来的aac文件,播放和用软件分析都正常。ffmpeg里面的MP4 mux,在PC上合成的文件是没有问题的。

    voice.aac
  • 应该不是mux的问题。我录制下来的MP4文件,用暴风影音播放没有声音。但是,使用

    ffmpeg  -i test.mp4 -acodec aac -strict experimental  -vcodec copy -y test-cov.mp4

    就可以听到声音了。

    其中的区别,就是MP4里面的音频数据,重新解码和编码了一次。这可以确定是DSP 音频AAC编码不兼容导致的吗?

  •    TI AACLC 编码库不支持LOAS头,我猜测你是将AACLC配置成IMP4AACENC_TT_RAW (no header)传输模式,然后在AAACLC帧前面补一个LOAS,这种方式能够被VLC解码,但是却无法被大多数第三方解码器解码。

       可以考虑将AACENC_TRANSPORT_TYPE配置成AACENC_TT_ADTS,然后将AACLC帧去掉ADTS头之后补一个LOAS头,试试?

  • 我检查了下, AACENC_TRANSPORT_TYPE是在IMP4AACENC_PARAMS里面设置的,而 IMP4AACENC_PARAMS是在TI提供的AAC编码库mp4aacenc_tij_lc_elf.l67定义的。可以直接修改IMP4AACENC_PARAMS吗,修改后怎么令它生效呢?