Làm cách nào để biến âm thanh thành video (nghĩa là hiển thị dạng sóng trong video)?


32

Tôi phải tạo một video. Một phần của nó liên quan đến việc "hiển thị" một cuộc phỏng vấn radio. Thay vì chỉ có một màn hình đen và nghe âm thanh, tôi muốn có một dạng sóng khác nhau trên màn hình và chú thích.

Có công cụ miễn phí hay giá rẻ nào tôi có thể sử dụng sẽ làm việc này không?


Nếu tôi nhờ một người bạn làm điều đó, có gì trong Adobe Creative Suite có thể thực hiện công việc không?


Audacity sẽ cho bạn thấy sóng âm thanh; bạn có thể ghi lại - trực quan - sóng.

Điều đáng nói là công cụ "visualizer" mà bạn có thể đang tìm kiếm là một máy hiện sóng , có thể thông báo cho tìm kiếm của bạn.
Chiến binh Bob

Câu trả lời:


52

Bạn có thể sử dụng ffmpegđể tạo video từ âm thanh bằng nhiều bộ lọc.


bản đồ

Chuyển đổi âm thanh đầu vào thành đầu ra video, hiển thị biểu đồ âm lượng.

bản đồ

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

Xem ahistogramtài liệu để biết thêm các lựa chọn và ví dụ.


rệp

Chuyển đổi âm thanh đầu vào thành đầu ra video, hiển thị pha âm thanh.

rệp

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

Xem aphasemetertài liệu để biết thêm các lựa chọn và ví dụ.


avectorscope

bộ lọc avectorscope

Chuyển đổi âm thanh đầu vào thành đầu ra video, đại diện cho phạm vi vectơ âm thanh.

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

Xem avectorscopetài liệu để biết thêm các lựa chọn và ví dụ.


showcqt

bộ lọc showcqt

Chuyển đổi âm thanh đầu vào thành đầu ra video đại diện cho phổ tần số theo thang âm nhạc.

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

Xem showcqttài liệu để biết thêm các lựa chọn và ví dụ.


showfreqs

Chuyển đổi âm thanh đầu vào thành đầu ra video đại diện cho phổ công suất âm thanh. Biên độ âm thanh nằm trên trục Y trong khi tần số nằm trên trục 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]"

Xem showfreqstài liệu để biết thêm các lựa chọn và ví dụ.


phô trương

hình ảnh showpectrum

Chuyển đổi âm thanh đầu vào thành đầu ra video, đại diện cho phổ tần số âm thanh.

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

Xem showspectrumtài liệu để biết thêm các lựa chọn và ví dụ.


showwaves

bộ lọc showwaves

Chuyển đổi âm thanh đầu vào thành đầu ra video, đại diện cho các sóng mẫu.

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

Xem showwavestài liệu để biết thêm các lựa chọn và ví dụ.


showvolume

bộ lọc showvolume

Chuyển đổi âm lượng đầu vào thành đầu ra 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]"

Xem showvolumetài liệu để biết thêm các lựa chọn và ví dụ.


Ghi chú

  • Xem FFmpeg Wiki: Hướng dẫn mã hóa H.264 để biết thêm thông tin chi tiết về chất lượng đầu ra.

  • format=yuv420p đảm bảo rằng libx264 sử dụng định dạng pixel tương thích với các trình phát crappy như QuickTime.

  • Thay vì mã hóa lại theo mặc định, bạn có thể sử dụng -c:a copyđể truyền phát bản sao âm thanh nếu định dạng thùng chứa đầu ra của bạn hỗ trợ định dạng âm thanh. Hãy nghĩ về sao chép luồng (tái muxing) như một bản sao và dán - không mã hóa lại.


Được ffmpeg

Bạn nên luôn luôn sử dụng một phiên bản gần đây vì sự phát triển rất tích cực. Liên kết đến các bản dựng ffmpegcho Windows, OS X và Linux có sẵn trên trang Tải xuống FFmpeg . Hoặc bạn có thể làm theo hướng dẫnffmpeg từng bước để biên dịch .


OP có thể sẽ muốn xem xét các câu trả lời khác liên kết đến các hướng dẫn After Effects, nhưng những ví dụ ffmpeg tuyệt vời này thực sự hữu ích để có ở đây. Cảm ơn!
mivk

1
@LordNeckbeard OP đây. Đã được một lúc, nhưng tôi đã trở lại, và đây là một câu trả lời tuyệt vời.
ccleve

Tôi vừa tạo một câu hỏi superuser.com/questions/1184922/, Làm cách nào tôi có thể đặt hình nền?
NineCattoRules ngày

6

Adobe After Effects có trình hiển thị, xem

Ngoài ra còn có các plugin như ở đây cho Photoshop.

Chúc may mắn với dự án của bạn.


4

Tôi hiểu câu hỏi của bạn khá tốt. Nếu bạn đang cố gắng tạo một mẫu dạng sóng di chuyển theo cao độ và âm trầm của âm thanh, thì bạn có thể thử liên kết này.

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

Hiệu ứng Adobe After cho phép bạn làm điều đó một cách dễ dàng. Bạn có thể chơi cùng với các hiệu ứng hạt để có được dạng sóng trông chắc chắn hơn.

Chúc may mắn!



3

Sau khi đọc câu trả lời tuyệt vời từ LordNeckbeard, tôi tiếp tục tạo ra một kịch bản nhỏ để tạo trực quan hóa với ffmpeg và bộ lọc showspectrum. Tôi cũng đã thêm một tùy chọn tải lên cho chính mình để mã hóa trực tiếp đến máy chủ từ xa có kết nối tốt hơn ở nhà để tải lên các video lớn. Nó cũng sử dụng kịch bản youtube-upload tuyệt vời !

EDIT: tải lên trực tiếp làm chậm quá trình mã hóa đáng kể !!

Kịch bản

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

Nếu bạn có quyền truy cập vào After Effects, có một plugin có tên Trapcode Keys có thể thực hiện việc này rất hiệu quả. Kết quả trông rất đẹp - Tôi đã sử dụng nó cho nhiều dự án cho chính xác những gì bạn đã mô tả, nhưng nó không rẻ - 150 đô la cho riêng nó, hoặc 899 đô la cho Trapcode Suite đầy đủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.