Created attachment 14208 [details] Исходный файл Описание ошибки =============== 1. Проверить многие форматы, которые выводятся в строках "Adding File Format" при запуске fs_encode с флагом -v. Для этого создать файлы для проверки. Например, с помощью исходного файла input.mp3 (во вложении) и ffmpeg (с помощью grep в команде исключены форматы, не поддерживаемые ffmpeg, а для gsm задан sample rate 8000, требуемый ffmpeg (*)): > # ffmpeg -y -i input.mp3 $(fs_encode -v test.1 test.2 2>&1 | grep "Adding File Format" | sed "s/.*Adding File Format '/input./g" | sed "s/'//g" | grep -E '^[a-z0-9\.]+$' | grep -v -E 'avr|htk|iff|mat|mpc|m1a|paf|pvf|raw|rf64|sd2|sds|wve|xi|r8|r16|r24|r32|ulaw|alaw|adpcm|vox' | sed 's/input.gsm/-ar 8000 input.gsm/g') (*) На результаты с другими форматами изменение sample rate не влияет. Выполнить конвертацию из созданных файлов в wav: > # for infile in $(ls | grep input | grep -v output); do echo "in: $infile:"; fs_encode "$infile" "$infile.output.wav"; done (запускается от имени root из-за https://bugzilla.altlinux.org/47334) Фактический результат ===================== * Вывод для mp3 и oga вида: > Couldn't open input.oga * Вывод для al, au, caf, flac, ogg, sf, ul, voc, w64 и wav вида: > Couldn't initialize codec for flac@8000h@20i * Вывод для gsm: Вывода нет, успешное завершение команды (но см. https://bugzilla.altlinux.org/47344). Ожидаема только ошибка с mp3, т. к. его поддержка не заявляется. Остальные ошибки не ожидаемы. При запуске c -v выводятся ошибки вида: > # fs_encode -v input.flac output.ogg > Opening file input.flac > [...] [DEBUG] switch_core_file.c:444 File input.flac sample rate 44100 doesn't match requested rate 8000 > [...] [WARNING] switch_core_file.c:463 File has 2 channels, muxing to 1 channel will occur. > Opening file output.ogg > [...] [ERR] switch_core_codec.c:670 Invalid codec ogg! > Couldn't initialize codec for ogg@8000h@20i > [...] [WARNING] switch_core_codec.c:932 Codec is not initialized! > [...] [WARNING] switch_core_codec.c:932 Codec is not initialized! Примечания: * Ошибка невозможности "конвертации" wav -> wav отдельная: https://bugzilla.altlinux.org/47345. * Ошибка "Codec is not initialized!" возникает и при успешном завершении конвертации, см. вывод в https://bugzilla.altlinux.org/47344. * Указание "-r 44100" убирает строку с DEBUG, но больше ни на что не влияет. Ожидаемый результат =================== Все выводимые форматы должны поддерживаться. Обратная проверка ================= Проверить обратное (какие форматы поддерживаются в качестве вывода при использовании входного файла input.gsm/wav) можно с помощью команды: > # for ext in $(ls | grep input | grep -v output | sed 's/input\.//g'); do echo "gsm -> $ext:"; fs_encode "input.gsm" "gsm-output.$ext"; echo "wav -> $ext:"; fs_encode "input.wav" "wav-output.$ext"; done Исходя из вывода этой команды, работает конвертация только {wav,gsm} -> gsm и gsm -> wav. Дополнительно ============= Для файлов mp3, поддержка которого не указана, выводится ошибка вида: > # fs_encode input.mp3 output.ogg > Couldn't open input.mp3 Она более понятна из вывода c -v: > # fs_encode -v input.mp3 output.ogg | grep mp3 > Opening file input.mp3 > Couldn't open input.mp3 > 2023-08-25 10:44:55.092209 100.00% [ERR] switch_core_file.c:346 Invalid file format [mp3] for [input.mp3]! Не ясно, почему эта ошибка появляется и для oga, о котором программа пишет в своём выводе. Воспроизводимость ================= Воспроизводится на виртуальных машинах: [p10] server-10.1-x86-64 freeswitch-daemon-1.10.9-alt1.x86_64 ffmpeg-4.4.4-alt1.x86_64 [sisyphus] server-10.1-x86-64 freeswitch-daemon-1.10.10-alt1.x86_64 ffmpeg-4.4.4-alt1.x86_64