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