У меня есть видео размером 1232 × 800 пикселей, которое будет воспроизводиться на проекторе с разрешением 1280 × 800, но ограничено рамкой 800 × 800 в середине экрана, сохраняя соотношение сторон. Таким образом, фактический размер видео будет около 800 × 519, то есть масштабируется до 65%; черные полосы должны быть добавлены со всех сторон:
+---------screen---------+
| |
| +----video-----+ |
| | | |
8 5 | |
0 1 | |
0 9 | |
| | | |
| +------800-----+ |
| |
+----------1280----------+
Я мог бы изменить видеофайл, включив в него черные полосы, но скорее избежал бы неизбежной потери качества (и проблем с кодеками) от транскодирования. Более того, мы хотели бы, чтобы это было легко адаптироваться к другим решениям в будущем.
Так как же добиться этого во время воспроизведения, используя cvlc
(т.е. только параметры командной строки)?
Вещи, которые я пытался:
cvlc --fullscreen --vout glx --no-autoscale --scale 0.65 video.mp4
Это то, что может предложить документация (
--help
)--autoscale
и--scale
. Но похоже, что--scale
просто игнорируется.cvlc --fullscreen --vout glx --width 800 --height 519 video.mp4
Это, похоже, ничего не делает. Видео по-прежнему масштабируется по размеру экрана.
cvlc --fullscreen --vout glx --no-autoscale --zoom 0.6493506493506493 video.mp4
Это работает на моей машине (VLC 2.2.6), но, как сообщается, приводит к крошечному видео в производственной системе.
Я использую VLC 2.2.2 на Ubuntu 16.04 LTS, поэтому я не могу легко обновить.