1

У меня есть видео размером 1232 × 800 пикселей, которое будет воспроизводиться на проекторе с разрешением 1280 × 800, но ограничено рамкой 800 × 800 в середине экрана, сохраняя соотношение сторон. Таким образом, фактический размер видео будет около 800 × 519, то есть масштабируется до 65%; черные полосы должны быть добавлены со всех сторон:

+---------screen---------+
|                        |
|    +----video-----+    |
|    |              |    |
8    5              |    |
0    1              |    |
0    9              |    |
|    |              |    |
|    +------800-----+    |
|                        |
+----------1280----------+

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

Так как же добиться этого во время воспроизведения, используя cvlc (т.е. только параметры командной строки)?

Вещи, которые я пытался:

  1. cvlc --fullscreen --vout glx --no-autoscale --scale 0.65 video.mp4

    Это то, что может предложить документация (--help) --autoscale и --scale . Но похоже, что --scale просто игнорируется.

  2. cvlc --fullscreen --vout glx --width 800 --height 519 video.mp4

    Это, похоже, ничего не делает. Видео по-прежнему масштабируется по размеру экрана.

  3. cvlc --fullscreen --vout glx --no-autoscale --zoom 0.6493506493506493 video.mp4

    Это работает на моей машине (VLC 2.2.6), но, как сообщается, приводит к крошечному видео в производственной системе.

Я использую VLC 2.2.2 на Ubuntu 16.04 LTS, поэтому я не могу легко обновить.

1 ответ1

1

Ваш вопрос заставил меня любопытно весь день. В течение последнего часа я играл на Ubuntu VM и немного копался.

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

cvlc --fullscreen --vout glx --no-autoscale --scale 0.65 video.mp4

а также

cvlc --fullscreen --vout glx --width 800 --height 519 video.mp4

нацелены на масштабирование окна. Если вы удалите --fullscreen из вашей команды, вы увидите, что размер окна равен точному размеру, который вы указали, но как только вы включите полноэкранный режим, видео воспроизводится в оригинальном размере.

Я пробовал каждый вариант, который включает в себя ширину / высоту слова в официальной справке командной строки VLC, и результат тот же.


Ваша третья команда - ваш лучший случай. Третья команда - единственная, которая влияет на видеопоток, а не на окно. Таким образом, вы должны найти лучший процент, который будет воспроизводить ваше видео именно так, как вы хотите.

Предложения, которые я сделал в комментариях для Devilspie2 и kpie , также влияют на размер окна, поэтому они могут показаться неуместными в вашем случае.

Сейчас ваш лучший способ - найти идеальное число для параметра --zoom


Zoom не даст вам точный размер, который вы ищете, поскольку нет возможности указать ширину и высоту с помощью --zoom . Если вы готовы сделать перекодировку, вы можете получить ожидаемые результаты

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