Opus 音频编解码器格式[和 OGG 作为其容器]开始获得牵引力,这很棒。然而,这也意味着日常问题浮出水面。今天我的是一个损坏的文件,问题是是否有工具来修复流。
实际的流可能是由一个损坏的编码器创建的,即:
Encoded with Gagravarr.org Java Vorbis Tools v0.8 20160217
和opusinfo正确抱怨:
**WARNING: Invalid header page in stream 1, contains multiple packets**
New logical stream (#1, serial: 000052c9): type opus
**WARNING: Implausibly low preskip in Opus stream (1)**
Encoded with Gagravarr.org Java Vorbis Tools v0.8 20160217
Opus stream 1:
Pre-skip: 0
Playback gain: 0 dB
Channels: 1
Original sample rate: 16000Hz
Packet duration: 60.0ms (max), 60.0ms (avg), 60.0ms (min)
Page duration: 60.0ms (max), 60.0ms (avg), 60.0ms (min)
Total data length: 12231171 bytes (overhead: 13.9%)
Playback length: 60m:49.920s
Average bitrate: 26.81 kb/s, w/o overhead: 23.08 kb/s
Logical stream 1 ended
哪个好。但是虽然数据明显存在,但opusdec决定强制正确:
Decoding to 48000 Hz (1 channel)
Extra packets on initial header page. Invalid stream.
并绝对拒绝处理该文件,这不是非常有用。
我的问题是:用户应该如何抢救/修复/修复损坏但可抢救的文件?那有(FOSS)代码吗?在xiph中有一些隐藏的功能吗?
答案 0 :(得分:3)
请向编码器的上游报告警告和错误。 opusinfo和opusdec的观点是抱怨让人们修复他们的软件并停止制作损坏的文件。除了额外的数据包和未设置的跳过前值,60 ms的数据包持续时间可能不是你想要的。
xiph的opus-tools软件包中没有修复程序。您可以尝试使用类似ffmpeg in.opus -acodec copy out.opus
的内容来重新启动它,这可能会纠正错误的分页。没有好方法可以纠正丢失的预跳过值。