Хотя я не знаю ни одного сервиса, который кодирует все, что вам нужно, вы можете сделать свой собственный довольно просто. Для полной поддержки в Интернете всех браузеров html5 вам необходимо кодировать (как минимум) в 2 различных формата.
h264 поддерживается IE9, Safari, Mobile Safari (iPhone) и Android. (Я думаю, что Chrome может поддержать это, но не может в будущем. Политика.)
Theora поддерживается для Opera, Mozilla (Firefox) и Chrome.
Вы можете использовать ffmpeg для кодирования в оба эти формата, поэтому вполне возможно создать пакетный конвертер самостоятельно.
Вот несколько команд для начала работы:
ffmpeg -i input -pass 1 -vcodec libx264 -preset fast -b 512k -threads 0 -f mp4 -an -y /dev/null && ffmpeg -i [INPUT FILE] -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -preset fast -b 512k -threads 0 output.mp4
Это сделает двухпроходное кодирование в mp4 / aac h264. Поиграйте с опцией -b для увеличения и уменьшения битрейта (и размера файла). Опция -ab - это ваш звук, 128k должно быть достаточно, но если вы заметите, что он звучит плохо, вы можете попробовать использовать 256k.
Theora обычно сложнее настроить, но есть хороший инструмент под названием ffmpeg2theora, который немного упростит процесс конвертации. Его можно найти здесь: http://v2v.cc/~j/ffmpeg2theora/
использование немного проще, чем ffmpeg, что-то вроде этого: ffmpeg2theora -v 7 -a 3 [INPUT FILE]
, где -v - качество видео (из 10) и -a - качество звука (из 10).
в обоих примерах замените [INPUT FILE]
на ваш ввод, например myvideo.avi
.
Я рекомендую поиграть с обоими инструментами, чтобы почувствовать их, они оба мощные, и как только вы освоите их, вы легко их освоите.
Как только вы захотите создать для него файл пакетной обработки, один из самых простых способов сделать это - написать скрипт быстрой оболочки. Вот пример:
#!/bin/bash
# super simple batch video script
ffmpeg -i input -pass 1 -vcodec libx264 -preset fast -b 512k -threads 0 -f mp4 -an -y /dev/null && ffmpeg -i $1 -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -preset fast -b 512k -threads 0 output.mp4 && ffmpeg2theora -v 7 -a 3 $1
сохранить как, скажем, encode.sh
.
затем сделайте его исполняемым: chmod 755 encode.sh
и запустите его с аргументом пути к видео: sh encode.sh "/path/to/video.avi"
Единственные вещи в этом сценарии, которые могут быть незнакомы:
#!/bin/bash
- это говорит sh, чтобы запустить этот скрипт в оболочке bash.
$1
- это будет первый аргумент, передаваемый оболочке bash. В приведенном выше случае путь к видеофайлу.
&&
- это говорит bash подождать, пока последняя команда будет выполнена, а затем продолжить. Таким образом, вы можете объединить много команд вместе.
Надеюсь, это поможет.