回答:
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
その他のオプションと例については、ドキュメントを参照してください。
入力オーディオを、音楽のトーンスケールで周波数スペクトルを表すビデオ出力に変換します。
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
その他のオプションと例については、ドキュメントを参照してください。
入力オーディオボリュームをビデオ出力に変換します。
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
し、コピーストリームあなたの出力コンテナフォーマットは、オーディオフォーマットをサポートしている場合は、オーディオを。ストリームコピー(再多重化)は、コピーと貼り付けのようなもので、再エンコードは不要です。
ffmpeg
開発は非常に活発なので、常に最新バージョンを使用する必要があります。ffmpeg
Windows、OS X、およびLinuxのビルドへのリンクは、FFmpegダウンロードページから入手できます。または、ステップバイステップガイドffmpeg
に従ってコンパイルできます。
あなたの質問をよく理解しました。オーディオのピッチとベースに応じて移動する波形パターンを作成しようとしている場合は、このリンクを試すことができます。
http://www.videocopilot.net/tutorial/audio_to_animation/
Adobe After Effectsを使用すると、簡単に行えます。パーティクルエフェクトと一緒に再生して、より安定した波形を得ることができます。
がんばろう!
多くの音楽プレーヤーにはビジュアライザーがあります。それらの1つでオーディオを再生し、スクリーングラバーを使用してビデオを記録します。
http://www.vidarholen.net/contents/blog/?p=23で説明されているように、gstreamerを使用することもできます。
別のオプションは、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ドル、または完全なTrapcode Suiteで899ドルです。