Comment convertir le son en vidéo (c'est-à-dire montrer les formes d'onde dans une vidéo)?


20

Je dois créer une vidéo.Cela implique en partie de "montrer" une interview à la radio.Plutôt que de simplement avoir un écran noir et d'écouter l'audio, j'aimerais avoir une forme d'onde variable sur l'écran et une légende.

Y at-il un outil gratuit ou bon marché que je peux utiliser pour le faire?


Si je demande à un ami de le faire, y a-t-il quelque chose dans Adobe Creative Suite qui peut faire le travail?

  0

Audacity devrait vous montrer l'onde sonore;vous pouvez enregistrer - visuellement - la vague. 07 déc.. 132013-12-07 20:40:43

  0

Il est à noter que l'outil de "visualisation" que vous recherchez est probablement un [oscilloscope] (http://en.wikipedia.org/wiki/Oscilloscope), qui peut éclairer votre recherche. 12 déc.. 132013-12-12 18:42:11

6

Adobe After Effects comporte un visualiseur, see

Il existe également des plugins tels que here pour Photoshop.

Bonne chance pour votre projet.


4

J'ai très bien compris votre question.Si vous essayez de créer un motif de forme d’onde qui se déplace en fonction de la hauteur et des basses de votre audio, vous pouvez essayer ce lien.

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

Adobe After Effects vous permet de le faire facilement.Vous pouvez jouer avec les effets de particules pour obtenir une forme d’onde plus solide.

Bonne chance!


2

De nombreux lecteurs de musique ont des visualiseurs.Jouez le son dans l’un d’eux et utilisez une carte d’affichage pour enregistrer la vidéo.

Vous pouvez également essayer d’utiliser gstreamer comme décrit au http://www.vidarholen.net/contents/blog/?p=23

Une autre option est la bougie Sonic, http://sourceforge.net/projects/soniccandle/


35

Vous pouvez utiliser ffmpeg pour créer une vidéo à partir de l'audio à l'aide de plusieurs filtres.


ahistogram

Convertissez l'audio d'entrée en une sortie vidéo, en affichant l'histogramme du volume.

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]"

Consultez la documentation ahistogram pour plus d'options et d'exemples.


aphasemeter

Convertir l'audio d'entrée en une sortie vidéo, affichant la phase audio.

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]"

Consultez la documentation aphasemeter pour plus d'options et d'exemples.


avectorscope

avectorscope filter

Convertir l'audio d'entrée en une sortie vidéo, représentant la portée du vecteur audio.

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]"

Reportez-vous à la documentation avectorscope pour plus d'options et d'exemples.


showcqt

showcqt filter

Convertissez l'audio d'entrée en une sortie vidéo représentant le spectre de fréquences avec une échelle de tonalité musicale.

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]"

Consultez la documentation showcqt pour plus d'options et d'exemples.


showfreqs

Convertissez l'audio d'entrée en sortie vidéo représentant le spectre de puissance audio.L'amplitude audio est sur l'axe des Y alors que la fréquence est sur l'axe des 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]"

Reportez-vous à la documentation showfreqs pour plus d'options et d'exemples.


showspectrum

showspectrum image

Convertir l'audio d'entrée en une sortie vidéo, représentant le spectre de fréquence audio.

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]"

Consultez la documentation showspectrum pour plus d'options et d'exemples.


showwaves

showwaves filter

Convertir l'audio d'entrée en une sortie vidéo, représentant les échantillons d'échantillons.

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]"

Consultez la documentation showwaves pour plus d'options et d'exemples.


showvolume

showvolume filter

Convertir le volume audio en entrée en sortie vidéo.

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]"

Consultez la documentation showvolume pour plus d'options et d'exemples.


Remarques

  • Voir FFmpeg Wiki: H.264 Encoding Guide pour plus d'informations sur la qualité de la sortie.

  • format=yuv420p s'assure que libx264 utilise un format de pixel compatible avec les lecteurs de mauvaise qualité tels que QuickTime.

  • Au lieu de ré-encoder par défaut, vous pouvez utiliser l'audio -c:a copy à stream copy si votre format de conteneur de sortie prend en charge le format audio.Pensez à la copie de flux (re-muxing) comme un copier-coller - pas de ré-encodage.


Obtenez ffmpeg

Vous devez toujours utiliser une version récente car le développement est très actif.Les liens vers les versions de ffmpeg pour Windows, OS X et Linux sont disponibles sur la page FFmpeg Download .Ou vous pouvez suivre pas à pas guide to compile ffmpeg .

  0

Le PO voudra probablement examiner les autres réponses qui renvoient aux didacticiels d’After Effects, mais ces excellents exemples ffmpeg sont vraiment utiles.Merci! 19 mai. 152015-05-19 17:44:23

+1

@ LordNeckbeard OP ici.Cela fait longtemps, mais je suis de retour et c'est une excellente réponse. 13 févr.. 162016-02-13 03:59:14

  0

@ccleve Merci, et bon retour. 15 févr.. 162016-02-15 18:29:48

  0

Je viens de créer une question http://superuser.com/questions/1184922/how-do-i-insert-a-background-image-on-spectrum-audio-effect-using-ffmpeg Comment puis-je définir un arrière-plan image? 03 mars. 172017-03-03 18:28:29


0

Si vous avez accès à After Effects, il existe un plugin appelé Trapcode Keys qui peut le faire très efficacement.Les résultats sont vraiment beaux - je l'ai utilisé dans de nombreux projets exactement comme vous l'avez décrit, mais ce n'est pas bon marché - 150 USD par lui-même ou 899 USD pour la suite complète Trapcode.


3

Après avoir lu l'excellente réponse de LordNeckbeard, j'ai ensuite créé un petit script pour effectuer une visualisation avec ffmpeg et le filtre showspectrum.J'ai aussi ajouté une option de téléchargement que je pouvais encoder directement sur mon serveur distant, lequel dispose d'une meilleure connexion grandes vidéos.Il utilise également le grand script youtube-upload !

MODIFIER:le téléchargement directement ralentit considérablement le processus d'encodage !!

Scénario

#!/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