如何打捞巨大的,可能是腐败的AIFF文件?

时间:2012-01-26 19:43:03

标签: audio ffmpeg quicktime vlc transcoding

由于Sound Track Pro故障,我有一个有问题的AIF文件。 它在QuickTime Player中播放效果很好,大约1小时50分钟。但是:

  • 它的大小是3.81GB,而(我相信)AIF文件只能是2GB或更小。
  • iTunes拒绝播放。
  • 当我尝试导入时,Logic Pro会显示错误消息“party-mix.aif is empty!”。
  • VLC将打开并播放该文件,但它会在1小时后结束(我猜这是2GB点)。
  • 尝试使用ffmpeg转码为Ogg会产生错误,

      

    [aiff @ 0x102051000] max_analyze_duration 5000000 reached at 5001333

         

    ....

         

    [pcm_s16be @ 0x10205a200] invalid PCM packet

    但结果文件在VLC中播放至1小时,当它结束时。

  • 尝试使用ffmpeg转码为MP3会产生与Ogg类似的结果,除了通道数量必须从6减少到2.这很奇怪,因为它是一个立体声项目 - 额外的4个频道来自我不知道
  • 有几个地方的音频加速非常明显。

我的问题:如何在不丢失下半场的情况下将这个弗兰肯斯坦怪物转码为MP3?我正在运行Mac OS 10.6.8。

1 个答案:

答案 0 :(得分:1)

将源文件分成两个目标文件

这可能不像听起来那么痛苦。 AIFF是一种非常简单的格式,在数学上确定的边界上应该很容易使用自定义代码甚至一些* nix cli工具进行解析。

  • 正确解析文件:编写一个简单的AIFF解析器,可以读取大小超过2GB的AIFF文件(" chunk"在AIFF世界中,据我所知)。确定要剪切的帧,并创建两个文件。
  • Hacky cut-n-tweek:只要您在框架边界上精确剪切文件,就应该能够播放下半部分剪辑。也许你必须预先填充一些标题数据。

在探索AIFF格式时有用的工具: