.png)
В качестве небольшого эксперимента я подумываю о конвертации некоторых видео/фильмов/сериалов в формат, который можно было бы воспроизвести на моем K850, но чтобы быть немного более общим в этом вопросе, давайте скажем, что это будет «телефон среднего класса Sony Ericsson», поскольку все они более или менее ведут себя одинаково и имеют одинаковое разрешение экрана (240 x 320).
Я ищу инструменты на основе командной строки (для Ubuntu), так как думаю позже написать скрипт «конвертации и перемещения», если он окажется успешным.
Большая часть видео у меня закодирована в формате mkv/h264, но поскольку телефон его не поддерживает, полагаю, мне придется конвертировать его в видео низкого качества mp4/mpeg4.
После некоторого гугления выяснилось, что хорошим кандидатом на эту работу является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 кажется правильной.
решение1
Почему бы не попробовать?Ручной тормоз? Он доступен для Linux, Mac Os и Windows, а также имеет интерфейс командной строки, если хотите.
Здесьруководство по Handbrake CLI.
решение2
Я не могу придумать ничего лучше, чем этот пример 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_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 Star_Wars.mp4
Это преобразует 50-минутный эпизод ТВ (4:3) в файл размером 70 Мб (раньше был 700 Мб)
и 2-часовой фильм (16:9) в файл размером 470 Мб (раньше был 1700 Мб)