1

В этой статье описывается, как можно связываться с изображением путем преобразования его необработанного двоичного представления в аудио PCM и применения к нему звуковых эффектов перед обратным преобразованием. Рекомендуемый метод заключается в импорте в Audacity, у которого есть опция Import Raw Data для этого.

Снимок экрана из меню импорта необработанных данных Audacity

Поскольку я хотел бы выполнять свои манипуляции со звуком в другом программном обеспечении (а именно в Reaper, у которого нет эквивалентной опции), было бы лучше, если бы я мог пропустить шаг Audacity и просто добавить команду для каждого изображения, с которым я работаю.

Похоже, что-то, что FFmpeg CLI должен уметь обрабатывать, но я не смог найти никаких руководств по этому вопросу, и мои собственные знания FFmpeg в значительной степени ограничены копированием.

Я попытался ffmpeg -i example.png example.wav но получил вывод:

Input #0, png_pipe, from 'example.png':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: png, rgba(pc), 1253x499, 25 tbr, 25 tbn, 25 tbc
Output #0, wav, to 'example.wav':
Output file #0 does not contain any stream

Я подозреваю, что если есть способ, он потребует каких-то манипуляций с потоком, но для меня это самая запутанная часть интерфейса ffmpeg. Может кто-нибудь мне помочь?

Бонусные баллы, если ваше решение работает для преобразования потока изображения видео в аудио тоже.

1 ответ1

1

изображение в аудио

Вы можете вывести rawvideo и передать его другому экземпляру ffmpeg форсируя ввод как аудио PCM:

ffmpeg -i in.png -f rawvideo - | ffmpeg -y -f s16le -sample_rate 44100 -channels 1 -i - -f s16le out.sw
  • Настройте форматы демультиплексора и мультиплексора с помощью -f . Конечный результат в этом примере - "s16le" (16-разрядный младший байтовый код со знаком PCM)
  • См. ffmpeg -demuxers и ffmpeg -muxers для получения списка доступных демультиплексоров и мультиплексоров.
  • Для деталей и опций для конкретного демультиплексора: ffmpeg -h demuxer=s16le
  • Для деталей и опций для определенного muxer: ffmpeg -h muxer=rawvideo

Если ваш аудиоредактор не принимает необработанные PCM, вы можете попробовать WAV. Так как вы все равно возитесь с этим, это не должно иметь большого значения:

ffmpeg -i in.png -f rawvideo - | ffmpeg -y -f s16le -sample_rate 44100 -channels 1 -i - out.wav

аудио для изображения

ffmpeg -f s16le -sample_rate 44100 -channels 1 -i edited.sw -f s16le - | ffmpeg -video_size 1920x1080 -pixel_format rgb24 -f rawvideo -i - out.png

YMMV. Если вывод PNG не работает, поэкспериментируйте с другими форматами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .