1

Я пытаюсь обрезать видеоклип (первоначально 960 на 540) в две 4 части (верхний левый, верхний правый и т.д.), И я использую эту команду ниже (с, конечно, правильными позициями x/y):

ffmpeg -i mov_a.m4v -vf "crop=480:270:480:270" mov_a_4.m4v

Проблема в том, что скорость передачи каждого обрезанного клипа различна. То, что я пытаюсь сделать, это поместить эти 4 части фильма в 4 планшета Android и запустить их одновременно (чтобы сформировать мультиэкран).

Я совершенно уверен, что команда PLAY одновременно достигает планшетов с ОС Android (очень небольшая разница во времени). Но тогда у меня есть эти 4 клипа не синхронизированы, и я предполагаю, что из-за разных битрейтов, игрок должен сделать больше работы, чтобы загрузить более высокие части с более высокой битрейтом.

Даже если вы думаете, что это не проблема, возможно ли заставить FFMPEG иметь одинаковую скорость передачи для всех 4 частей фильма? если так, что я должен изменить в моей командной строке выше?

Спасибо за вашу помощь!

1 ответ1

2

Принудительно использовать битрейт, используя опцию -b:v. Эта скорость будет зависеть от скорости ввода. Скажем, ffprobe сообщает о 1024 кбит / с для вашего неразрезанного видео. Я бы, принимая размер кадра 1/4, передавал битрейт 256 кбит / с или около того.

ffmpeg -i mov_a.m4v -vf "crop=480:270:480:270" -b:v 256k mov_a_4.m4v

В идеале, вы также должны явно использовать кодек, если вы используете битрейт:

ffmpeg -i mov_a.m4v -vf "crop=480:270:480:270" -vcodec libx264 -b:v 256k mov_a_4.m4v

Но затем проверьте кодек во входном файле. Обратите внимание, что воспроизведение без синхронизации может не иметь никакого отношения к битрейту - вы можете проверить каждое обрезанное видео, которое у вас уже есть, с помощью ffprobe или ffmpeg:

ffmpeg -i filename

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