Вы можете использовать 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 для получения более подробной информации о качестве вывода.
format=yuv420p
гарантирует, что libx264 использует формат пикселей, совместимый с такими дрянными плеерами, как QuickTime.
Вместо перекодирования по умолчанию вы можете использовать -c:a copy
для потокового копирования аудио, если ваш формат выходного контейнера поддерживает аудио формат. Думайте о потоковом копировании (повторном мультиплексировании) как о копировании и вставке - без перекодирования.
Получить ffmpeg
Вы всегда должны использовать последнюю версию, так как разработка очень активна. Ссылки на сборки ffmpeg
для Windows, OS X и Linux доступны на странице загрузки FFmpeg . Или вы можете следовать пошаговой инструкции по компиляцииffmpeg
.