Как реализовать программу слияния видео и аудио?
-
01-10-2019 - |
Вопрос
Я хочу создать программу, которая берет видео и аудио и объединяет их.Тип видео или тип звука для меня не важен.Как я могу это сделать?Существует ли какая-нибудь библиотека для этого?Я знаю, что есть много программ на эту тему, но я хочу научиться реализовывать такую программу.
Решение
Технический термин для обозначения того, что вы пытаетесь сделать, таков:мультиплексирование', и обычно называемый 'мультиплексирование'.
FFmpeg — это мультиплатформенный инструмент командной строки, который делает это и считается отраслевым стандартом.Многие проекты включают FFmpeg в библиотеки и графические интерфейсы.
FFmpeg также имеет открытый исходный код, поэтому вы можете скачать код и посмотреть, как они это сделали.Этот сиад очень большой и сложный.
Если вас интересует реальный механизм объединения отдельных аудио- и видеофайлов в конечный файл, вам нужно будет много узнать о форматы контейнеров и Кодеки.
Другие советы
Посмотрите на какую-нибудь оболочку FFMPEG на C#.
Простой способ мультиплексировать аудио и видео в Linux — использовать gstreamer.Вот конвейер аудио/видео, который вы можете создать с помощью gst-launch в командной строке.
filesrc location=file1.vid ! queue ! mux. filesrc location=file2.aud ! queue ! mux. avimux name=mux ! filesink location=output.avi
Замените file1.vid именем вашего закодированного видеофайла и file2.aud именем вашего закодированного аудиофайла.output.avi — это файл-контейнер, который вам нужен.