2

Я играю микс контента 320p/480p/720p через VLC, и каждый раз, когда я открываю одно из меньших разрешений для воспроизведения, VLC делает окно маленьким - могу ли я настроить его так, чтобы, если контент меньше, чем, скажем, 500p, автоматически устанавливался уровень масштабирования до 200%, чтобы окна стали примерно того же размера, что и для контента 720p при 100%?

примечание: я не ищу фиксированный размер окна, так как это уничтожило бы масштабирование с видео 4: 3 и 16: 9, и я бы предпочел иметь фиксированный% масштаб, а не фиксированный размер окна, который затем приводит к нечетные размеры.

1 ответ1

1

Это должно быть возможно с использованием следующих инструментов:

  • AutoHotkey
  • mediainfo.dll , распространяется с большинством видеоплееров и кодеков, но также доступна напрямую.
    Поскольку AutoHotkey является 32-разрядным, используйте 32-разрядную версию.

Скриптовый скрипт AutoHotkey ниже может быть частью файла .ahk для решения проблемы:

video = "file-path"
DllCall( "LoadLibrary", Str,"MediaInfo.Dll" )
hnd := MediaInfo_New()
MediaInfo_Open( hnd, video )
height := MediaInfo_Get( hnd, 1,0, "Height", 1 )
MediaInfo_Close( hnd )

if (height < 500)
  Run, "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --zoom=2 %video%
else
  Run, "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" %video%

MediaInfo_New() {
 Return DllCall( "mediainfo\MediaInfo" ( A_IsUnicode ? "" : "A" ) "_New" )
}

MediaInfo_Open( hnd, MediaFile ) {
 Return DllCall( "mediainfo.dll\MediaInfo" ( A_IsUnicode ? "" : "A" ) "_Open", UInt,hnd
               , Str,MediaFile, UInt )
}

MediaInfo_Get( hnd, StrK=0, StrN=0, Comm="", InfK=0, Srch=0 ) {
 Return DllCall( "mediainfo.dll\MediaInfo" ( A_IsUnicode ? "" : "A" ) "_Get", UInt,hnd
               , Int,StrK, Int,StrN, Str,Comm, Int,InfK, Int,Sech, Str )
}

MediaInfo_Close( hnd ) {
 Return DllCall( "mediainfo\MediaInfo" ( A_IsUnicode ? "" : "A" ) "_Close", UInt,hnd )
}

Этот скрипт основан на посте форума AutoHotkey. Получите длину и разрешение видео. Скрипт в посте также показывает, как создать окно AutoHotkey, которое работает с файлами, которые были пропущены в этом окне.

Обратите внимание, что я не проверял вышеупомянутый скрипт.

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