Bagaimana cara mengubah audio menjadi video (yaitu, menampilkan bentuk gelombang dalam video)?

32

Saya harus membuat video. Bagian dari itu melibatkan "menunjukkan" wawancara radio. Daripada hanya memiliki layar hitam dan mendengarkan audio, saya ingin memiliki bentuk gelombang yang bervariasi di layar dan keterangan.

Apakah ada alat gratis atau murah yang dapat saya gunakan yang akan melakukan ini?


Jika saya meminta seorang teman untuk melakukannya, apakah ada sesuatu di Adobe Creative Suite yang dapat melakukan pekerjaan itu?

ccleve
sumber
Audacity akan menunjukkan kepada Anda gelombang suara; Anda bisa merekam - secara visual - gelombang.
Patut disebutkan bahwa alat "visualisator" yang mungkin Anda cari adalah osiloskop , yang dapat menginformasikan pencarian Anda.
Warrior Bob

Jawaban:

52

Anda dapat menggunakan ffmpeguntuk membuat video dari audio menggunakan beberapa filter.


ahistogram

Konversi input audio ke output video, menampilkan histogram 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]"

Lihat ahistogramdokumentasi untuk opsi dan contoh lainnya.


aphasemeter

Konversi input audio ke output video, menampilkan fase 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]"

Lihat aphasemeterdokumentasi untuk opsi dan contoh lainnya.


avectorscope

filter avectorscope

Konversi input audio ke output video, yang mewakili ruang lingkup vektor 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]"

Lihat avectorscopedokumentasi untuk opsi dan contoh lainnya.


showcqt

filter showcqt

Konversi input audio ke output video yang mewakili spektrum frekuensi dengan skala nada musik.

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

Lihat showcqtdokumentasi untuk opsi dan contoh lainnya.


showfreqs

Konversi input audio ke output video yang mewakili spektrum daya audio. Amplitudo audio pada sumbu Y sedangkan frekuensi pada sumbu 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]"

Lihat showfreqsdokumentasi untuk opsi dan contoh lainnya.


showspectrum

menunjukkan gambar spektrum

Konversi input audio ke output video, mewakili spektrum frekuensi 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]"

Lihat showspectrumdokumentasi untuk opsi dan contoh lainnya.


pertunjukan

showwaves filter

Konversi input audio ke output video, mewakili gelombang sampel.

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

Lihat showwavesdokumentasi untuk opsi dan contoh lainnya.


showvolume

filter showvolume

Ubah volume audio input menjadi output video.

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

Lihat showvolumedokumentasi untuk opsi dan contoh lainnya.


Catatan

  • Lihat FFmpeg Wiki: H.264 Panduan Pengkodean untuk informasi lebih rinci mengenai kualitas keluaran.

  • format=yuv420p memastikan bahwa libx264 menggunakan format piksel yang kompatibel dengan pemain jelek seperti QuickTime.

  • Alih-alih menyandikan ulang secara default, Anda dapat menggunakan -c:a copyuntuk mengalirkan menyalin audio jika format wadah keluaran Anda mendukung format audio. Pikirkan menyalin aliran (re-muxing) seperti salin dan tempel - tidak ada penyandian ulang.


Mendapatkan ffmpeg

Anda harus selalu menggunakan versi terbaru karena pengembangannya sangat aktif. Tautan yang dibuat ffmpeguntuk Windows, OS X, dan Linux tersedia di halaman Unduh FFmpeg . Atau Anda dapat mengikuti panduanffmpeg langkah demi langkah untuk mengkompilasi .

llogan
sumber
OP mungkin ingin melihat jawaban lain yang terhubung ke tutorial After Effects, tetapi contoh-contoh ffmpeg yang sangat baik ini sangat berguna untuk dimiliki di sini. Terima kasih!
mivk
1
@LordNeckbeard OP di sini. Sudah lama, tapi saya kembali, dan ini adalah jawaban yang bagus.
ccleve
Saya baru saja membuat pertanyaan superuser.com/questions/1184922/... Bagaimana saya bisa mengatur gambar latar belakang?
NineCattoRules
6

Adobe After Effects memiliki visualizer, lihat

Ada juga plugin seperti di sini untuk Photoshop.

Semoga berhasil dengan proyek Anda.


sumber
4

Saya mengerti pertanyaan Anda dengan cukup baik. Jika Anda mencoba membuat pola bentuk gelombang yang bergerak sesuai dengan nada dan bass audio Anda, maka Anda dapat mencoba tautan ini.

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

Adobe After effect memungkinkan Anda melakukannya dengan mudah. Anda dapat bermain bersama dengan efek partikel untuk mendapatkan bentuk gelombang yang lebih solid.

Semoga berhasil!


sumber
3

Setelah membaca jawaban hebat dari LordNeckbeard, saya membuat skrip kecil untuk membuat visualisasi dengan ffmpeg dan filter showspectrum. Saya juga menambahkan opsi unggah untuk menyandikan langsung ke server jarak jauh saya yang memiliki koneksi yang lebih baik daripada di rumah untuk mengunggah video besar. Itu juga menggunakan skrip hebat youtube-unggah !

EDIT: mengunggah secara langsung memperlambat proses pengkodean secara signifikan !!

Naskah

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

Dread Perkasa
sumber
0

Jika Anda memiliki akses ke After Effects, ada plugin bernama Trapcode Keys yang dapat melakukan ini dengan sangat efektif. Hasilnya terlihat sangat bagus - Saya telah menggunakannya pada banyak proyek untuk apa yang telah Anda jelaskan, tetapi tidak murah - $ 150 sendiri, atau $ 899 untuk Trapcode Suite lengkap.

tomh
sumber