Мне нужно преобразовать изображение и аудио в видеофайлы AVI для использования с инструментом микширования видео , который принимает только видео AVI.
Как мне:
Без лишних кодирование, если это возможно. Кроме того, я думаю, что я могу использовать черное фоновое изображение в качестве входных данных, но я бы предпочел вообще обойтись без видеоканала, если это возможно.
Я бы предпочел простое решение командной строки, если это возможно.
Вам нужен более общий инструмент для редактирования видео. Некоторые варианты - Novacut и Blender , оба из которых должны обеспечивать достаточные возможности, чтобы делать то, что вам нужно.
Получите настоящий ffmpeg. fake ffmpeg из репозитория содержит ошибки. Эта команда загрузит недавнюю статическую сборку ffmpeg , поэтому установка не требуется и она не будет мешать чему-либо из хранилища:
wget http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.$(date +"%F").tar.gz
tar xzvf ffmpeg.static.32bit.$(date +"%F").tar.gz
Выполнить команды (обратите внимание на ./
до ffmpeg
):
конвертировать аудио mp3 в avi без видеоканала
./ffmpeg -i input.mp3 -map 0:a -codec:a copy output.avi
convert JPG изображение в AVI без звука
./ffmpeg -loop 1 -i input.jpg -codec:v copy -t 10 output.avi
Примечания:
Обложка альбома в файлах MP3 считается быть видео потоком от ffmpeg. Поскольку вы не хотели видео, используя -map 0:a
, команда ffmpeg должна копировать только аудиопоток со входа 0
(первый вход - 0
, а в вашем случае это также единственный вход). В противном случае поведение по умолчанию состоит в том, чтобы включать один поток для каждого типа потока от входа к выходу (см. выбор потока для получения дополнительной информации). В качестве альтернативы можно использовать -vn
.
-codec:a copy
включат режим потокового копирования . Это просто повторно мультиплексирует поток, поэтому нет перекодирования и потери качества звука.
-loop 1
зацикливает входной файл, а -t 10
создает 10-секундный вывод; иначе это будет цикл навсегда. Если вы хотите определенное количество кадров, используйте вместо этого -vframes
.
По умолчанию входное изображение будет иметь частоту кадров 25. Если вы хотите изменить это, используйте -r
в качестве параметра ввода (до -i
). Затем выходные данные будут наследовать частоту кадров ввода. Если вы также хотите изменить частоту кадров на выходе, добавьте еще один -r
в качестве параметра вывода. Затем ffmpeg удалит или продублирует кадры, чтобы достичь желаемой частоты кадров.
AVI является контейнерным форматом и может использовать различные аудио и видео форматы, поэтому, если что-то утверждает, что поддерживает только «AVI», то вам следует запросить более конкретную информацию.