Почему бы не попробовать ручной тормоз ? Он доступен для Linux, Mac OS и Windows, а также имеет интерфейс командной строки, если хотите.
Вот руководство к CLI Ручного тормоза.
В качестве небольшого эксперимента я подумал о том, чтобы преобразовать некоторые видео / фильмы / сериалы в формат, который можно было бы воспроизводить на моем K850, но чтобы быть немного более общим в этом вопросе, скажем, телефон среднего класса Sony Ericsson, так как все они более или менее ведут себя одинаково и имеют одинаковое разрешение экрана (240 х 320).
Я ищу инструменты на основе командной строки (для Ubuntu), так как я думаю о том, чтобы написать сценарий «конвертировать и переместить» позже, если он будет успешным.
Большая часть видео, которое я имею, закодирована в mkv / h264, но так как это не поддерживается телефоном, я думаю, что мне нужно преобразовать его в некоторое видео низкого качества mp4 / mpeg4.
После некоторого поиска в Google кажется, что хорошим кандидатом на работу является ffmpeg, но это очень универсальный инструмент с множеством магических приемов.
Я на правильном пути? И если да, то как мне использовать ffmpeg для этого?
Спасибо Йохан
Обновление : после того, как мы немного добавили ffmeg, я заметил, что он использует только 1 из 4 моих ядер, поэтому перекодирование длится вечно. Я нашел аргумент под названием -threads, но это не сильно изменилось, может быть, я ошибся.
Я также обнаружил, что что-то подобное играет в телефоне.
ffmpeg -i Mythbusters\ S1D1_1.mkv -threads 4 -t 180 -vcodec mpeg4 -r 15 -s 320x240 Mythbusters\ S1D1_1_mini.mp4
Можно было использовать 3gp / h263, но качество было действительно бесполезным.
ffmpeg -i Mythbusters\ S1D1_1.mkv -t 180 -vcodec h263 -acodec libfaac -s cif Mythbusters\ S1D1_1_cif.3gp
И кажется, что mp4 / h264 также возможен, и результат в порядке, благодаря этому вопросу, кажется, этот использует более одного ядра, так что это было немного быстрее для меня.
ffmpeg -i Mythbusters_S1D1_1.mkv -t 180 -acodec libfaac -ab 60k -s 320x240 -vcodec libx264 -b 500k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -me_method umh -subq 6 -trellis 1 -refs 5 -coder 0 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 500k -maxrate 768k -bufsize 2M -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 13 -threads 0 -f mp4 Mythbusters_S1D1_1_qvga.mp4
Обновление : я попытался использовать HandBrakeCLI, и нет проблем с созданием нового файла, который выглядит так же, как тот, который был создан с помощью ffmpeg, с чем-то вроде этого.
HandBrakeCLI -i Mythbusters_S1D1_1.mkv --size 100 -E faac -B 60 --maxHeight 240 -r 15 -e x264 -o Mythbusters_S1D1_1_hand.mp4
Но тот не играл в телефоне ...
Я нашел это в официальном руководстве:
Если вы передаете видеоклипы с использованием другой программы, отличной от Media Go ™, мы рекомендуем выбрать видео базового профиля H.264, вплоть до QVGA со скоростью 30 кадров в секунду, VBR 384 кбит / с (максимум 768 кбит / с) со звуком AAC + со скоростью 128 кбит / с (максимум 255 кбит / с ), 48 кГц и стереозвук в формате mp4.
Так что идея использовать H264 кажется правильной.
Почему бы не попробовать ручной тормоз ? Он доступен для Linux, Mac OS и Windows, а также имеет интерфейс командной строки, если хотите.
Вот руководство к CLI Ручного тормоза.
Я не могу получить это лучше, чем этот пример ffmpeg:
ffmpeg -i Star_Wars.mkv -acodec libfaac -ab 60k -s 320x240 -vcodec libx264 -b 500k -flags + loop -cmp + chroma -partitions + parti4x4 + partp8x8 + partb8x8 -flags2 + mixed_refs -m e_methos-umhs-6 1 -refs 5 -кодер 0 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 500k -maxrate 768k -bufsize 2M -qcomp 0 .6 -qmin 10 -qmax 51 -qdiff 4 -level 13 -threads 0 -f mp4 Star_Wars.mp4
Это преобразует 50-минутный телевизионный эпизод (4: 3) в файл размером 70 МБ (раньше было 700 МБ)
и 2-часовой фильм (16: 9) в файл 470 МБ (раньше было 1700 МБ)