Я использовал Ubuntu на своем школьном компьютере в этом году, я обычно записываю лекции, на которые не могу надеяться поспевать за профессором, у меня есть разрешение на это. Я использовал аудио-рекордер по умолчанию, который вы можете установить, sudo apt-get install audio-recorder
потому что он был самым простым в использовании. Ранее в семестре у них записи были в порядке. Но теперь они испорчены, как только запись сделана. Они в формате .m4a.
Я перепробовал много уроков, включая редактирование шестнадцатеричных данных записи, не повезло. Я не знаю, где начинается запись, так как, когда я пытаюсь сделать новую запись, она повреждена. Я попытался использовать ffmpeg, чтобы получить эту ошибку, moov atom not found
поиск которой не помогает решить проблему. Или я получаю сообщение об ошибке, в protocol not found. Did you mean in.m4a?
котором указано имя файла, который я набрал правильно. ffmpeg возвращает ошибку «протокол не найден». Затем он говорит, что вы имеете в виду файл, который я вставил. Faad возвращает эту ошибку: Unable to find correct AAC sound track in the MP4 file.
Я также попытался восстановить MP4, и он работает, поэтому файл можно исправить. Но это будет стоить 86 долларов, и мне нужно исправить 6 записей.
Я попытался удалить и переустановить ограниченные кодеки.
Любая помощь будет принята с благодарностью.
Ответы:
Смотрите здесь , внизу страницы.
Если нужно, установите faad
sudo apt install faad
dd ibs=1 skip=44 if=yourfilename.m4a of=raw.m4a
faad -a newname.m4a raw.m4a
Все кредиты автору ссылки, на которую я указываю, потому что я не знаю, что делаю, но я проверил это на вашем большом файле, и он работает. Первая команда занимает некоторое время. Потерпи. Пробовал на убунту 16.04.
Как указано в комментариях, результат может быть открыт в VLC, но не в Audacious. Но мы можем использовать vlc для его перекодирования или переписать в другой формат. Сценарий ниже преобразует все файлы * .m4a в текущем каталоге в * .mp3.
#!/bin/bash
источник
Это работает, но значения, используемые в dd, не подходят для каждого случая. Здесь автор исходного поста объясняет почему: Оригинальный пост этого решения
По сути, вы удаляете заголовок файла, пропуская 44 байта с помощью dd, но это значение варьируется от файла к файлу, как это случилось со мной.
Решение состоит в том, чтобы использовать шестнадцатеричный редактор (я предлагаю на копии сломанного файла) и удалить все от начала до конца слова «mdat». В моем случае это было 28 байтов вместо 44.
Я использую 0xED в качестве шестнадцатеричного редактора для Mac (он бесплатный и работает на последней Mac OS, Mojave, на момент написания статьи). Кроме того, для Mac вы можете установить faad с помощью Homebrew, запустив
Вам может потребоваться указать частоту дискретизации файла, если она отличается от 44,100 Гц при использовании faad с ключами -s
Если faad возвращает эту ошибку,
Error: Maximum number of bitstream elements exceeded
это может означать, что вы удалили слишком много байтов с начала файла, как это сначала произошло со мной.Наконец, после обработки необработанного файла с помощью faad вы захотите перекодировать файл m4a, чтобы убедиться, что у вас есть правильный и совместимый файл, это можно легко сделать с помощью ffmpeg
источник