它是什么编解码器

时间:2013-02-21 07:10:25

标签: ios file audio codec

我有一个压缩文件,其大小为728,不知怎的,我知道这是一个音频文件,它持续1040毫秒

压缩文件结构很简单:

由14个字节块组成,每个块以0x0C:

开头

0℃XX xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx 0C xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx XX 0C xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx XX 0C xx月xx xx月xx XX xx月xx xx月xx xx月xx xx月xx 0C xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx XX 0C xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx XX 0C xx月xx xx月xx xx月xx xx月xx xx月xx xx月xx xx 0c xx xx xx xx xx xx xx xx xx xx xx xx xx

(xx)可以是任何十六进制数

您可以在此处下载压缩二进制文件:

http://dusijun.files.wordpress.com/2013/02/29-aud-bin.doc(请重命名为* .aud)

或doc格式的文本视图

http://dusijun.files.wordpress.com/2013/02/29-aud.doc

没有标题或元信息。块数取决于实际音频的长度。 文件大小的音频持续时间约为1.42

例如

如果文件大小= 9506,那么音频可能会在13 S附近持续9506 * 1.42 = 13580 ms

任何人都知道它可能是什么编解码器?

PS:

二进制文件是WeChat(ios)音频文件。

REF

1)如何提取/播放.aud文件?

http://www.boards.ie/vbulletin/showthread.php?t=2055891600

2)WeChat ios

https://itunes.apple.com/us/app/wechat/id414478124?mt=8

2 个答案:

答案 0 :(得分:7)

我怀疑它是一个语音编解码器。例如RFC6716OPUS。 对于NB语音,此编解码器的比特率 8-12 kbit / s。 0x0c适合SILK配置20ms帧大小。

  

| 0 ... 3 | SILK-only | NB | 10,20,40,60 ms |

20ms帧大小约为14字节。我试图将样本保存为 29-aud-bin.opus 并在Firefox中打开它,但它缺少其他 opus 文件所具有的标题。 Skype也使用SILK编解码器的版本。

答案 1 :(得分:3)

它是什么编解码器?不知怎的,我知道这是一个音频文件。二进制文件是WeChat(ios)音频文件。

为可下载的样本文件提供AUD扩展名没有意义。

  

您最有可能在程序文件夹中找到一个AUD文件   韦斯特伍德的视频游戏。具有AUD文件扩展名的文件是视频游戏压缩音频   文件。


How do I find a codec?

如果您知道编解码器的名称或其ID(称为视频编解码器的FourCC标识符或音频编解码器的 WaveFormat标识符),请尝试搜索Internet。您经常可以访问编解码器制造商的网站下载最新版本的编解码器。

由于您的文件没有标题或元信息(文件魔法),您只能依赖文件扩展名,例如:

http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/AU/AU.html

enter image description here

如果我得到一个扩展名为.EXE的文件,*我知道这确实是一个音频文件`我可以使用Winista检查文件魔法。

public MimeType GetMimeTypeFromFile(string filePath)
{
    sbyte[] fileData = null;
    using (FileStream srcFile = new FileStream(filePath, FileMode.Open, FileAccess.Read))
    {
        byte[] data = new byte[srcFile.Length];
        srcFile.Read(data, 0, (Int32)srcFile.Length);
        fileData = Winista.Mime.SupportUtil.ToSByteArray(data);
    }

    MimeType oMimeType = GetMimeType(fileData);
    if (oMimeType != null) return oMimeType;

    //We haven't found the file using Magic (eg a text/plain file)
    //so instead use URLMon to try and get the files format
    Winista.MimeDetect.URLMONMimeDetect.urlmonMimeDetect urlmonMimeDetect = new Winista.MimeDetect.URLMONMimeDetect.urlmonMimeDetect();
    string urlmonMimeType = urlmonMimeDetect.GetMimeFromFile(filePath);
    if (!string.IsNullOrEmpty(urlmonMimeType))
    {
        foreach (MimeType mimeType in types)
        {
            if (mimeType.Name == urlmonMimeType)
            {
                return mimeType;
            }
        }
    }

    return oMimeType;
}

注意可以在msdn - Detect file type上找到使用URLMon查找MIME类型的代码

上述方法将打开文件并检测其真实的MIME类型,以了解要打开它的程序。它使用XML格式的视频/音频MIME类型映射文件进行匹配:

<!--
 !   Audio primary type
 ! -->

<mime-type name="audio/basic"
           description="uLaw/AU Audio File">
    <ext>au</ext><ext>snd</ext>
    <magic offset="0" type="byte" value="2e736e64000000"/>
</mime-type>

<mime-type name="audio/midi"
           description="Musical Instrument Digital Interface MIDI-sequention Sound">
    <ext>mid</ext><ext>midi</ext><ext>kar</ext>
    <magic offset="0" value="MThd"/>
</mime-type>

<mime-type name="audio/mpeg"
           description="MPEG Audio Stream, Layer III">
    <ext>mp3</ext><ext>mp2</ext><ext>mpga</ext>
    <magic offset="0" value="ID3"/>
</mime-type>

我尝试过winamp和Windows Media Classic,但都无法打开文件。

由于您不知道文件MIME类型和文件扩展名AUD显然是错误的,我不认为可以检测播放此文件所需的编解码器/程序。