내 생각은 오디오에서 영감을 얻은 비디오와 함께 오디오 파일을 YouTube에 업로드하는 것이 었습니다. 특정 시각화는 스펙트럼, 스펙 토 그램 또는 오디오에 따라 변경되는 다른 형태의 시각화와 같은 다른 형태 일 수 있습니다. 나는 ffmpeg 또는 sox의 모든 기능에 익숙하지 않지만, 이와 같은 작업을 다른 명령 줄 유틸리티를 사용하여 일련의 스크립트로 수행 할 수 있는지 궁금합니다.
답변
오디오 시각화 ffmpeg
ffmpeg -i input.mp3 -filter_complex \
"[0:a]avectorscope=s=640x518,pad=1280:720[vs]; \
[0:a]showspectrum=mode=separate:color=intensity:scale=cbrt:s=640x518[ss]; \
[0:a]showwaves=s=1280x202:mode=line[sw]; \
[vs][ss]overlay=w[bg]; \
[bg][sw]overlay=0:H-h,drawtext=fontfile=/usr/share/fonts/TTF/Vera.ttf:fontcolor=white:x=10:y=10:text='\"Song Title\" by Artist'[out]" \
-map "[out]" -map 0:a -c:v libx264 -preset fast -crf 18 -c:a copy output.mkv
ffmpeg
avectorscope , showspectrum 및 showwaves 와 같은 여러 필터를 사용하여 오디오를 시각화 할 수 있습니다 . 그런 다음 오버레이로 원하는 곳에 배치 한 다음 drawtext로 텍스트를 추가 할 수 있습니다 .
위의 예에서 오디오는 다시 인코딩되지 않고 스트림 복사 (다시 muxed)됩니다.
에서 FFmpeg은 위키 : 어떻게 YouTube 및 다른 비디오 공유 사이트에 대한 비디오를 인코딩합니다 .
답변
다음은 오디오 파일을 가져 와서 실행하고 ffmpeg
ffmpeg에서 사용할 수있는 일부 필터를 기반으로 비디오를 만드는 예제입니다 .
예 :
스펙트럼 :
ffmpeg -i song.mp3 -filter_complex showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt -y -acodec copy video.mp4
벡터 이미지 :
ffmpeg -i song.mp3 -filter_complex avectorscope=s=320x240 -y -acodec copy video.mp4
줌 만델 브로트 :
ffmpeg -i song.mp3 -f lavfi -i mandelbrot=s=320x240 -y -acodec copy video.mp4