Sesi videoya nasıl dönüştürebilirim (yani videodaki dalga formlarını gösterme)?


32

Bir video oluşturmalıyım. Bir kısmı bir radyo röportajını "göstermeyi" içerir. Sadece siyah bir ekrana sahip olmak ve sesi dinlemek yerine, ekranda farklı bir dalga formuna ve bir başlığa sahip olmak istiyorum.

Bunu yapacak, kullanabileceğim herhangi bir ücretsiz veya ucuz araç var mı?


Bir arkadaşımdan yapmasını istersem, Adobe Creative Suite'te işi yapabilecek herhangi bir şey var mı?


Audacity size ses dalgasını göstermelidir; - görsel olarak - dalgayı kaydedebilirsiniz.

Muhtemelen aradığınız "görselleştirici" aracının , aramanızı bilgilendirebilecek bir osiloskop olduğunu belirtmekte fayda var .
Savaşçı Bob

Yanıtlar:


52

Birkaç ffmpegfiltreyi kullanarak sesten video oluşturmak için kullanabilirsiniz .


ahistogram

Ses seviyesini gösteren histogramı görüntüleyerek giriş sesini bir video çıkışına dönüştürün.

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

Daha ahistogramfazla seçenek ve örnek için belgelere bakın .


aphasemeter

Ses fazını gösteren giriş sesini bir video çıkışına dönüştürün.

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

Daha aphasemeterfazla seçenek ve örnek için belgelere bakın .


avectorscope

avectorscope filtresi

Giriş sesini, ses vektörü kapsamını temsil eden bir video çıkışına dönüştürün.

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

Daha avectorscopefazla seçenek ve örnek için belgelere bakın .


showcqt

showcqt filtresi

Giriş sesini, müzikal ton ölçeğine sahip frekans spektrumunu temsil eden bir video çıkışına dönüştürün.

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

Daha showcqtfazla seçenek ve örnek için belgelere bakın .


showfreqs

Giriş sesini, ses gücü spektrumunu temsil eden video çıkışına dönüştürün. Frekans X eksenideyken ses genliği Y ekseni üzerindedir.

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

Daha showfreqsfazla seçenek ve örnek için belgelere bakın .


showspectrum

gösteri spektrumu resmi

Giriş sesini, ses frekansı spektrumunu temsil eden bir video çıkışına dönüştürün.

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

Daha showspectrumfazla seçenek ve örnek için belgelere bakın .


showwaves

vitrin filtresi

Giriş dalgalarını, örnek dalgaları temsil eden bir video çıkışına dönüştürün.

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

Daha showwavesfazla seçenek ve örnek için belgelere bakın .


showvolume

hacimli filtre

Giriş ses seviyesini bir video çıkışına dönüştürün.

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

Daha showvolumefazla seçenek ve örnek için belgelere bakın .


notlar

  • Bkz H.264 Kodlama Kılavuzu: FFmpeg Wiki çıktı kalitesi ile ilgili daha fazla ayrıntılı bilgi için bkz.

  • format=yuv420p libx264'ün QuickTime gibi crappy oynatıcılarla uyumlu bir piksel biçimi kullanmasını sağlar.

  • Yerine yeniden kodlama varsayılan olarak kullanabilirsiniz -c:a copyiçin kopyalamak akışı çıktı biçimdir ses formatını destekliyorsa ses. Akış kopyalamayı (yeniden kopyalamayı) bir kopyala ve yapıştır gibi düşünün - yeniden kodlama yok.


Almak ffmpeg

Geliştirme çok aktif olduğundan her zaman yeni bir sürüm kullanmalısınız. Derlemelerini linkler ffmpegWindows, OS X ve Linux için mevcuttur FFmpeg İndirme sayfasına. Veya derlemek içinffmpeg adım adım kılavuz izleyebilirsin .


OP muhtemelen After Effects derslerine bağlanan diğer cevaplara bakmak isteyecektir, ancak bu mükemmel ffmpeg örnekleri burada olması gerçekten faydalıdır. Teşekkürler!
mivk

1
@LordNeckbeard OP burada. Uzun zaman oldu, ama geri döndüm ve bu harika bir cevap.
saat

Yeni bir soru yarattım superuser.com/questions/1184922/… Arka plan resmini nasıl ayarlayabilirim?
NineCattoRule

6

Adobe After Effects'te görselleştirici var, bkz.

Photoshop için burada gibi eklentiler de vardır .

Projenizde iyi şanslar.


4

Sorunuzu oldukça iyi anladım. Sesinizin perdesine ve basına göre hareket eden bir dalga şekli deseni oluşturmaya çalışıyorsanız, bu bağlantıyı deneyebilirsiniz.

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

Adobe After Effects kolayca yapmanıza olanak sağlar. Daha sağlam görünen bir dalga formu elde etmek için parçacık efektleriyle birlikte oynayabilirsiniz.

İyi şanslar!



3

LordNeckbeard'den gelen büyük cevabı okuduktan sonra ffmpeg ve showspectrum filtresi ile görselleştirme yapmak için küçük bir senaryo hazırladım. Ayrıca büyük videoları yüklemek için evde olduğundan daha iyi bir bağlantıya sahip olan uzak sunucuma doğrudan kodlaması için bir yükleme seçeneği de ekledim. Aynı zamanda youtube-upload'taki betiği de kullanır !

DÜZENLEME: yükleme doğrudan kodlama sürecini önemli ölçüde yavaşlatır !!

Senaryo

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


0

After Effects'e erişiminiz varsa , bunu çok etkili bir şekilde yapabilen Trapcode Keys adlı bir eklenti var . Sonuçlar çok güzel görünüyor - birçok projede tam olarak tanımladığınız şey için kullandım, ancak ucuz değil - tek başına 150 $ veya tam Trapcode Suite için 899 $.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.