Каков формат файла/кодировка этого потока двоичных данных?

У меня есть несколько двоичных двоичных объектов (blob из MySQL). Предполагается, что это аудиопоток, записанный с помощью веб-приложения JS.

Я взял один из этих BLOB-объектов и сохранил его как файл a.wtf. Когда я запустил strings a.wtf, я получил полезную информацию.

webmB
QTmuxingAppLibWebM-0.0.1WA
QTwritingAppLibWebM-0.0.1
A_OPUSc
OpusHead
OPUS
...

Я также пробовал в терминале следующее (советы в гугле).

[dilawars@chutki data (master)]$ mkvextract a.wtf tracks 0:audio.opus
Error: (mkvextract) The file 'a.wtf' could not be opened for reading: Not a valid Matroska file (no segment/level 0 element found).

Загрузить файл .wtf.

Любая помощь очень ценится? В идеале я хотел бы преобразовать их в формат WAV.

Обновить

Я использовал этот инструмент.

[dilawars@chutki data (master)]$ hachoir-metadata a.wtf 
[err!] Unable to parse file: a.wtf

person Dilawar    schedule 10.12.2020    source источник
comment
Похоже, что это файл WebM, содержащий звук Opus, но он поврежден, кажется, он закодирован в тексте, хотя должен быть двоичным.   -  person bryc    schedule 30.12.2020
comment
@bryc спасибо. Его кодировка base64. Я использовал FFmpeg, чтобы преобразовать его в файл WAV. Работал безупречно. Еще раз спасибо за указатель.   -  person Dilawar    schedule 31.12.2020


Ответы (1)


Благодаря подсказке @bryc мне удалось найти решение. Данные в MySQL находятся в кодировке base64 (загруженный файл a.wtf уже в двоичном формате). Я декодирую их обратно в двоичный поток и сохраняю как файл a.webm. После этого я выполнил следующую команду.

$ ffmpeg -i a.webm -ac 1 -f wav -vn -ar 20500 a.wav
person Dilawar    schedule 31.12.2020
comment
Рад, что вы поняли это; хотя этот файл a.wtf, похоже, не находится ни в одном представлении base64, о котором я знаю. Как вы декодировали файл a.wtf обратно в двоичный файл? - person bryc; 31.12.2020
comment
@bryc Загруженный файл уже в двоичном формате. Виноват. Я сделаю заметку. - person Dilawar; 02.01.2021