1

В качестве небольшого эксперимента я подумал о том, чтобы преобразовать некоторые видео / фильмы / сериалы в формат, который можно было бы воспроизводить на моем 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 кажется правильной.

2 ответа2

4

Почему бы не попробовать ручной тормоз? Он доступен для Linux, Mac OS и Windows, а также имеет интерфейс командной строки, если хотите.

Вот руководство к CLI Ручного тормоза.

1

Я не могу получить это лучше, чем этот пример 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 МБ)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .