
Я использую ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
. Мне нужно преобразовать файл .mp4 в формат .ogg. Я работаю на Mac OS X, и я пробовал это до сих пор:
ffmpeg -i sample_mpeg4.mp4 -acodec vorbis -vcodec libtheora -f ogg output.ogv
Я осознаю:Unknown encoder 'libtheora'
ffmpeg -i sample_mpeg4.mp4 -acodec libvorbis -vcodec --enable-libtheora output.ogv
Я осознаю:Unknown encoder '--enable-libtheora'
ffmpeg -i sample_mpeg4.mp4 -acodec libvorbis -vcodec libtheora -f ogv output.ogv
Я осознаю:
[NULL @ 0x7f81bb00f800] Requested output format 'ogv' is not a suitable output format
output.ogv: Invalid argument
ffmpegtheora
это не вариант, так как его невозможно установить на сервер.
решение1
В вашей версии FFmpeg отсутствуют необходимые кодировщики libtheora
для видео Theora и libvorbis
аудио Vorbis.
Вы можете добавить эти кодировщики только одним из следующих способов:
- компилируя их с помощью FFmpeg, или
- установка исполняемого файла, который уже их объединяет.
Для вас самым простым выбором будет загрузить статическую версию с сайтастраница загрузки FFmpeg. Все они поставляются с libtheora
и libvorbis
, независимо от операционной системы, для которой они были созданы.
Затем вам нужно извлечь архив загрузки и просто запустить ffmpeg
двоичный файл, который был включен. Правильный синтаксис будет следующим:
ffmpeg -i in.mp4 -c:v libtheora -c:a libvorbis out.ogv
Если вы хотите изменить качество аудио или видео, вы можете изменить битрейт, например, с помощью -b:v 1M
или -b:a 192k
. Поэкспериментируйте с этими значениями и используйте более высокий или более низкий битрейт в зависимости от ограничений по качеству или размеру файла, которые у вас есть.
Вы также можете использовать VBR (постоянное качество) с -q:v
, где значения варьируются от 0 до 10 (чем выше, тем лучше), при этом рекомендуется 7. Качество звука можно задать с помощью -q:a
, снова со значениями от 0 до 10, где рекомендуется 4, что соответствует примерно 128 кбит/с.
Обратите внимание, что --enable-libtheora
это параметр конфигурации, который не работает при вызове ffmpeg
.
решение2
ИспользоватьДомашнее пивоменеджер пакетов
Установить Homebrew в командной строке
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Установить ffmpeg с поддержкой libtheora
$ brew install ffmpeg --with-theora --with-libvorbis
Другие варианты перечислены здесь
$ brew options ffmpeg
Надеюсь, это поможет другим или мне в будущем ;)
решение3
--enable-libtheora следует использовать при сборке ffmpeg из исходников, а не при попытке запустить программу. Вам следует попробовать пересобрать ffmpeg (используяпоследний источник конечно) и добавление поддержки libtheora во время настройки (./configure --enable-libtheora и т. д....)
Если вам нужна помощь по сборке из исходников, в Google есть много информации, но все сводится (для вас) к включению необходимых библиотек, вы можете посмотретьздесьи _http://jungels.net/articles/ffmpeg-howto.html для начала.