Как преобразовать звук в видео (то есть показать формы волны в видео)?

Я должен создать видео. Часть этого включает в себя «показ» радиоинтервью. Вместо того, чтобы просто иметь черный экран и слушать звук, я хотел бы иметь различную форму волны на экране и подпись.

Есть ли какой-нибудь бесплатный или дешевый инструмент, который я могу использовать, чтобы сделать это?


Если я попрошу друга сделать это, есть ли в Adobe Creative Suite что-нибудь, что может сделать эту работу?

Audacity должен показать вам звуковую волну; вы могли записать - визуально - волну.
Стоит отметить, что инструмент «визуализатор», который вы, вероятно, ищете, — это осциллограф , который может помочь вам в поиске.
Вы можете использовать ffmpegдля преобразования напрямую - ffmpeg конвертировать аудио в видео Используя фильтры , вы можете получить эстетически приятное видео.

Ответы (7)

Вы можете использовать ffmpegдля создания видео из аудио с помощью нескольких фильтров.


агистограмма

Преобразование входного аудио в видеовыход с отображением гистограммы громкости.

агистограмма

ffmpeg

ffmpeg -i input.flac -filter_complex \
"[0:a]ahistogram,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4

ffplay

ffplay -f lavfi "amovie=input.flac, asplit [a][out1]; [a] ahistogram [out0]"

Дополнительные ahistogramпараметры и примеры см. в документации.


афазометр

Преобразование входного аудио в видеовыход с отображением фазы звука.

афазометр

ffmpeg

ffmpeg -i input.wav -filter_complex \
"[0:a]aphasemeter=s=1280x720:mpc=cyan,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4

ffplay

ffplay -f lavfi "amovie=input.wav, asplit [a][out1]; [a] aphasemeter=s=1280x720:mpc=cyan [out0]"

Дополнительные aphasemeterпараметры и примеры см. в документации.


вектороскоп

вектороскоп фильтр

Преобразуйте входное аудио в видеовыход, представляя область аудио вектора.

ffmpeg

ffmpeg -i input.mp3 -filter_complex \
"[0:a]avectorscope=s=1280x720,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4

ffplay

ffplay -f lavfi "amovie=input.mp3, asplit [a][out1]; \
[a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]"

Дополнительные avectorscopeпараметры и примеры см. в документации.


показать

showcqt фильтр

Преобразование входного аудио в видеовыход, представляющий частотный спектр с музыкальной шкалой тонов.

ffmpeg

ffmpeg -i input.mp4 -filter_complex \
"[0:a]showcqt,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4

ffplay

ffplay -f lavfi "amovie=input.mp4, asplit [a][out1]; [a] showcqt [out0]"

Дополнительные showcqtпараметры и примеры см. в документации.


шоучастоты

Преобразуйте входной звук в видеовыход, представляющий спектр звуковой мощности. Амплитуда звука находится по оси Y, а частота — по оси X.

шоучастоты

ffmpeg

ffmpeg -i input.mp4 -filter_complex \
"[0:a]showfreqs=mode=line:fscale=log,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4

ffplay

ffplay -f lavfi "amovie=input.mp4, asplit [a][out1]; [a]  showfreqs=mode=line:fscale=log [out0]"

Дополнительные showfreqsпараметры и примеры см. в документации.


шоуспектр

изображение спектра

Преобразуйте входной звук в видеовыход, представляя звуковой частотный спектр.

ffmpeg

ffmpeg -i input.oga -filter_complex \
"[0:a]showspectrum=s=1280x720,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4

ffplay

ffplay -f lavfi "amovie=input.oga, asplit [a][out1]; \
[a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]"

Дополнительные showspectrumпараметры и примеры см. в документации.


шоуволны

фильтр шоуволн

Преобразуйте входное аудио в видеовыход, представляющий волны сэмплов.

ffmpeg

ffmpeg -i input.m4a -filter_complex \
"[0:a]showwaves=s=1280x720:mode=line:rate=25,format=yuv420p[v]" \
-map "[v]" -map 0:a output.mp4

ffplay

ffplay -f lavfi "amovie=input.m4a, asplit [a][out1]; [a] showwaves [out0]"

Дополнительные showwavesпараметры и примеры см. в документации.


шоуобъем

фильтр showvolume

Преобразование громкости входного аудио в выходной видеосигнал.

ffmpeg

ffmpeg -i input.mka -filter_complex \
"[0:a]showvolume=f=1:b=4:w=720:h=68,format=yuv420p[vid]" \
-map "[vid]" -map 0:a output.mp4

ffplay

ffplay -f lavfi "amovie=input.mka, asplit [a][out1]; [a] showvolume=f=255:b=4:w=720:h=68 [out0]"

Дополнительные showvolumeпараметры и примеры см. в документации.


Примечания

  • См. FFmpeg Wiki: Руководство по кодированию H.264 для получения более подробной информации о качестве вывода.

  • format=yuv420pгарантирует, что libx264 использует формат пикселей, совместимый с паршивыми проигрывателями, такими как QuickTime.

  • Вместо перекодирования по умолчанию вы можете использовать -c:a copyпотоковое копирование аудио, если формат вашего выходного контейнера поддерживает формат аудио. Думайте о потоковом копировании (повторном мультиплексировании) как о копировании и вставке — без повторного кодирования.


Получатьffmpeg

Вы всегда должны использовать последнюю версию, так как разработка очень активна. Ссылки на сборки ffmpegдля Windows, OS X и Linux доступны на странице загрузки FFmpeg . Или вы можете следовать пошаговому руководству по компиляцииffmpeg .

ОП, вероятно, захочет посмотреть другие ответы, которые ссылаются на учебные пособия по After Effects, но эти отличные примеры ffmpeg действительно полезны здесь. Спасибо!
@LordNeckbeard, ОП, здесь. Прошло некоторое время, но я вернулся, и это отличный ответ.
Я только что создал вопрос superuser.com/questions/1184922/… Как установить фоновое изображение?
Для установки Ubuntu просто используйте sudo apt install ffmpeg. Он включает в себя ffplayи ffprobeэто все, что мне нужно на данный момент. Ваши методы визуализации выглядят многообещающе при воспроизведении песни. Когда песня приостановлена, вместо нее будет отображаться обложка альбома.

Adobe After Effects имеет визуализатор, см.

Есть также плагины, такие как здесь для Photoshop.

Удачи тебе с твоим проектом.

Я очень хорошо понял ваш вопрос. Если вы пытаетесь создать паттерн формы волны, который движется в соответствии с высотой и басом вашего звука, вы можете попробовать эту ссылку.

http://www.videocopilot.net/tutorial/audio_to_animation/

Adobe After Effects позволяет вам сделать это легко. Вы можете играть вместе с эффектами частиц, чтобы получить более солидную форму волны.

Удачи!

Многие музыкальные проигрыватели имеют визуализаторы. Воспроизведите аудио в одном из них и используйте средство захвата экрана для записи видео.

Вы также можете попробовать использовать gstreamer, как описано на http://www.vidarholen.net/contents/blog/?p=23 .

Другой вариант — Sonic Candle, http://sourceforge.net/projects/soniccandle/

Прочитав отличный ответ от LordNeckbeard, я создал небольшой скрипт для визуализации с помощью ffmpeg и фильтра showspectrum. Я также добавил возможность загрузки для себя, чтобы кодировать непосредственно на мой удаленный сервер, который имеет лучшее соединение, чем дома, для загрузки больших видео. Он также использует отличный скрипт youtube-upload !

РЕДАКТИРОВАТЬ: прямая загрузка значительно замедляет процесс кодирования!!

Скрипт

#!/bin/bash
# ffmpeg spectrum maker

action=$1

infile=$2

outfile=$3
upload_server="sftp://cloud"

upload_location="/home/master/videos/"

remote_command="youtube-upload --title=\"Remote_upload\" --privacy=\"private\" $upload_location$outfile"

#simple spectrum
filter1="showspectrum=s=1920x1080:slide=scroll:mode=combined:color=intensity:scale=cbrt:saturation=1:win_func=hann[tmp]"

#vertical mirror
filter2="[tmp]crop=iw:ih/2:0:ih/2-3,split[up][tmp];[tmp]vflip[down];[up][down]vstack[tmp]"

#horizontal mirror
filter3="[tmp]crop=iw/2:ih:iw/2:,split[left][tmp];[tmp]hflip[right];[left][right]hstack[tmp]"

#fisheye effect VERY SLOW!!! if used make change the size of the spectrum to (1920*11/10)x(1080*11/10) and use the crop filter below
filter4="[tmp]frei0r=filter_name=defish0r:filter_params=1.5|n[tmp]"

#make sure the resolution has the desired size
filter5="[tmp]crop=1920:1080"

#pass the stream to the output for ffplay
testpass="[tmp]copy[out0]"


vcodec="-codec:v libx264 -pix_fmt yuv420p -tune grain -crf 21 -preset medium -bf 2 -flags +cgop -r 25"

acodec="-codec:a libfdk_aac -b:a 128k -movflags +faststart"

#acodec="-codec:a copy"

extraflags="-movflags +faststart "


if [ "$action" = "test" ]
then
        ffplay -f lavfi "amovie=$infile,asplit[a][out1];[a]$filter1;$filter2;$filter3;$testpass"
fi

if [ "$action" = "make" ]
then
        ffmpeg -i "$infile" -filter_complex "[0:a]$filter1;$filter2;$filter3" -map [tmp] -map 0:a $vcodec $acodec $extraflags "$outfile"
fi
if [ "$action" = "upload" ]
then
        ffmpeg -i "$infile" -filter_complex "[0:a]$filter1;$filter2;$filter3" -map [tmp] -map 0:a $vcodec $acodec $extraflags "$upload_server$upload_location$outfile"
        ssh cloud $remote_command
fi
exit

Если у вас есть доступ к After Effects, есть плагин под названием Trapcode Keys , который может сделать это очень эффективно. Результаты выглядят действительно хорошо — я использовал его во многих проектах именно для того, что вы описали, но это недешево — 150 долларов отдельно или 899 долларов за полный пакет Trapcode Suite.

Вы можете сделать это бесплатно с помощью VEED.IO, в этом видео объясняется, как это сделать (Отказ от ответственности, я разработчик VEED.IO)

Вам необходимо отказаться от права собственности на эту программу, так как в противном случае это незаконная реклама.
Спасибо @FlorianClaaßen, теперь я добавил это.