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


20

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

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


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

  0

Смелость должна показать вам звуковую волну;Вы можете записать - визуально - волну. 07 дек. 132013-12-07 20:40:43

  0

Стоит отметить, что инструментом «визуализатора», который вы, вероятно, ищете, является [осциллограф] (http://en.wikipedia.org/wiki/Oscilloscope), который может информировать вас о поиске. 12 дек. 132013-12-12 18:42:11

6

У Adobe After Effects есть визуализатор see

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

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


4

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

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

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

Удачи!


2

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

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

Другим вариантом является Sonic Candle, http://sourceforge.net/projects/soniccandle/


35

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


ahistogram

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

ahistogram

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 для получения дополнительных опций и примеров.


aphasemeter

Преобразуйте входной аудиосигнал в видеовыход, отображая фазу аудио.

aphasemeter

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 для получения дополнительных опций и примеров.


avectorscope

avectorscope filter

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

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

showcqt filter

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

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 документацию для большего количества опций и примеров.


showfreqs

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

showfreqs

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 документацию для получения дополнительных опций и примеров.


showspectrum

showspectrum image

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

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 документацию для большего количества опций и примеров.


showwaves

showwaves filter

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

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

showvolume filter

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

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 Encoding Guide для получения более подробной информации о качестве продукции.

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

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


Получите ffmpeg

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

  0

ОП, возможно, захочет посмотреть другие ответы, которые ссылаются на учебные пособия по After Effects, но эти отличные примеры ffmpeg действительно полезно иметь здесь.Спасибо! 19 май. 152015-05-19 17:44:23

+1

@LordNeckbeard OP здесь.Это было давно, но я вернулся, и это отличный ответ. 13 фев. 162016-02-13 03:59:14

  0

@ccleve Спасибо и добро пожаловать обратно. 15 фев. 162016-02-15 18:29:48

  0

Я только что создал вопрос http://superuser.com/questions/1184922/how-do-i-insert-a-background-image-on-spectrum-audio-effect-using-ffmpeg Как установить фон образ? 03 мар. 172017-03-03 18:28:29


0

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


3

После прочтения отличного ответа от LordNeckbeard я продолжил создание небольшого скрипта для визуализации с помощью ffmpeg и фильтра showpectrum. Я также добавил опцию загрузки для себя, чтобы кодировать непосредственно на мой удаленный сервер, который имеет лучшее соединение, чем дома для загрузки. большие видео.Он также использует отличный скрипт 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