в
есть ли способ смотреть mpg или wmv в потоковом режиме, через бэкэнд на vps в браузере, не кодируя предварительно в mp4

о
такой способ есть, и для этого используется потоковое перепаковывание (remuxing). Бэкенд на сервере (VPS) не сжимает видео заново, а просто извлекает из старого контейнера (WMV/MPG) аудио- и видеодорожки и упаковывает их на лету в современный формат. Это требует минимум ресурсов процессора.

Существует несколько удобных решений для реализации такой задачи:

1. Использование FFmpeg + WebRTC

Это самый быстрый и современный способ, который дает минимальную задержку. На бэкенде запускается скрипт, который транслирует файл с помощью утилиты FFmpeg, а плеер в браузере принимает его через протокол WebRTC
Принцип: FFmpeg меняет только «контейнер» файла (заново паковывает), не меняя сами кадры. Нагрузка на VPS минимальна.
Как это действует: Сначала делаете скрипт на Node.js или Python, который читает файл и отдает по WebRTC, а в браузере используете js-плеер, например, WHEP (WebRTC HTTP Egress Protocol).

2. Использование HTTP Live Streaming (HLS)

Вы можете транслировать видео по частям, разрезая его на кусочки (фрагменты) в режиме реального времени.

Принцип: FFmpeg на VPS режет исходный файл WMV или MPG на небольшие куски (части) и генерирует плейлист .m3u8.
Плюсы: Видео будет загружаться как настоящий потоковый эфир.Инструменты: Вы можете использовать ⁠Nginx RTMP Module с HLS-модулем или специальный медиасервер для паковки. Для просмотра в браузере подойдет плеер hls.js.

3. Использование готового медиасервера

Вместо написания собственных скриптов можно развернуть готовый медиа-бэкенд на VPS.

⁠Jellyfin - популярный медиасервер, созданный для домашних кинотеатров. Он поддерживает трансляцию по сети (Direct Stream), позволяя отправлять поток на клиентские устройства, а также умеет делать перепаковку (remux) на лету. [1]
⁠MistServer - сервер потокового вещания, разработанный специально для репакинга видео из устаревших форматов в браузерные протоколы (например, в формат fMP4, который поддерживается в браузере штатно.

Если хотите, выберите удобный вариант для реализации:

Настроить собственный бэкенд на Node.js с начала?
Попробовать готовый вариант типа Jellyfin или MistServer?
Расскажите подробнее о задаче - это поможет выбрать лучшее решение.