Я использовал 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, но не в Смелом. Но мы можем использовать vlc, чтобы транскодировать его или переписать его к другому формату. Сценарий ниже преобразований все *.m4a файлы в текущем каталоге к *.mp3.
#!/bin/bash
quote=\"
executable="/usr/bin/vlc"
argument3=vlc://quit
#transcoding parameters
acodecvalue=mp3
bitratevalue=128
accessvalue=file
muxvalue=raw
for x in *.m4a; do
inputname="${x}"
strippedname=${x%.m4a}
outputname=${strippedname}.mp3
quote_outputname=${quote}./${outputname}${quote}
echo ${inputname}
echo ${quote_outputname}
qtranscode=#transcode{vcodec=none,acodec=$acodecvalue, # continue line !
ab=$bitratevalue,channels=$channelsvalue} # continue line !
:standard{access=$accessvalue,mux=$muxvalue,dst=${quote_outputname}}
argument1="$inputname"
argument2=--sout=$qtranscode
"$executable" -I dummy "$argument1" "$argument2" "$argument3"
done
Это работает, но использование значений в dd не достаточно для каждого случая. Здесь автор исходного сообщения объясняет почему: Исходное сообщение этого решения
В основном Вы лишаете заголовок файла путем пропуска 44 байтов с dd, но то значение варьируется от файла до файла, как это произошло со мной.
решение состоит в том, чтобы использовать Hex-редактор (я предлагаю на копии поврежденного файла), и удалите все с начала в конец слова "mdat". В моем случае это были 28 байтов вместо 44.
я использую 0xED в качестве Hex-редактора на Mac (это свободно и работает на последнем Mac OS, Мохаве, с этой записи). Кроме того, для Mac можно установить faad использование Домашнего пива путем выполнения
brew install faad2
, Вы, возможно, должны указать частоту дискретизации файла, если отличающийся от 44,100 Гц при использовании faad с-s
переключателя, Если faad возвращает эту ошибку Error: Maximum number of bitstream elements exceeded
, это могло бы означать удаление слишком многих байтов с начала файла как это произошло со мной сначала.
Наконец, после того как Вы обрабатываете необработанный файл с faad, Вы захотите повторно закодировать m4a файл, чтобы удостовериться, что у Вас есть надлежащий и совместимый файл, это может легко быть сделано с ffmpeg
ffmpeg -i newfile.m4a -c:a aac output.m4a