Skip to content

Instantly share code, notes, and snippets.

@balexandre
Last active August 30, 2023 08:51
Show Gist options
  • Save balexandre/60a4f89b3c79cb7adb5aaf87829207e8 to your computer and use it in GitHub Desktop.
Save balexandre/60a4f89b3c79cb7adb5aaf87829207e8 to your computer and use it in GitHub Desktop.
My F1Viewer configuration
{
"live_retry_timeout": 60,
"preferred_language": "en",
"check_updates": true,
"save_logs": true,
"log_location": "",
"horizontal_layout": false,
"theme": {
"background_color": "#000000",
"border_color": "#0CA597",
"category_node_color": "#0CA597",
"folder_node_color": "#0CA597",
"item_node_color": "#931547",
"action_node_color": "#0CA597",
"loading_color": "#931547",
"live_color": "",
"update_color": "",
"no_content_color": "#EEEEEE",
"info_color": "",
"error_color": "",
"terminal_accent_color": "",
"terminal_text_color": ""
},
"tree_ratio": 1,
"output_ratio": 1,
"custom_playback_options": [{
"title": "download with ffmpeg",
"command": ["ffmpeg", "-hide_banner", "-loglevel", "warning", "-i", "$url", "-c", "copy", "$title.mp4"]
}, {
"title": "Stream on VLC",
"command": ["C:\\Program Files\\VideoLAN\\VLC\\vlc.exe", "$url"]
}, {
"title": "Stream on MPV (1080p)",
"command": ["mpv", "--quiet", "--no-border", "$url"]
}, {
"title": "Stream on MPV (720p)",
"command": ["mpv", "--vid=2", "--no-border", "$url"]
}, {
"title": "Stream with Streamlink+MPV (720p)",
"command": ["streamlink", "--player", "C:\\ProgramData\\chocolatey\\lib\\mpv.install\\tools\\mpv.exe", "--hls-audio-select", "*", "$url", "720p"]
}, {
"title": "Stream with Streamlink+MPV (1080p)",
"command": ["streamlink", "--player", "C:\\ProgramData\\chocolatey\\lib\\mpv.install\\tools\\mpv.exe", "--hls-audio-select", "*", "$url", "1080p"]
}
],
"multi_commands": [{
"title": "Onboard, track and data (4k)",
"targets": [
{
"match_title": "Main Feed",
"command": ["mpv", "--start=0", "--quiet", "--no-border", "--autofit=2880", "--geometry=0:0", "$url"]
},
{
"match_title": "Charles Leclerc",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--autofit=960", "--geometry=100%:0", "$url"]
},
{
"match_title": "Sebastian Vettel",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--autofit=960", "--geometry=100%:33%", "$url"]
},
{
"match_title": "Lewis Hamilton",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--autofit=960", "--geometry=100%:67%", "$url"]
},
{
"match_title": "Max Verstappen",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--autofit=960", "--geometry=100%:100%", "$url"]
},
{
"match_title": "Lando Norris",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--autofit=960", "--geometry=67%:100%", "$url"]
},
{
"match_title": "Driver Tracker",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--autofit=960", "--geometry=0:100%", "$url"]
},
{
"match_title": "Data Channel",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--autofit=960", "--geometry=33%:100%", "$url"]
}
]}, {
"title": "Onboard, track and data (3440x1440) + drivers audio",
"targets": [
{
"match_title": "Main Feed",
"command": ["mpv", "--start=0", "--quiet", "--no-border", "--autofit=1750", "--geometry=0:0", "$url"]
},
{
"match_title": "Lewis Hamilton",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=1748:0", "--autofit=860", "$url"]
},
{
"match_title": "Daniel Ricciardo",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=2600:0", "--autofit=860", "$url"]
},
{
"match_title": "Charles Leclerc",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=1748:483", "--autofit=860", "$url"]
},
{
"match_title": "Lando Norris",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=2600:483", "--autofit=860", "$url"]
},
{
"match_title": "Max Verstappen",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=1748:960", "--autofit=860", "$url"]
},
{
"match_title": "Sergio Perez",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=2600:960", "--autofit=860", "$url"]
},
{
"match_title": "Driver Tracker",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=0:945", "--autofit=860", "$url"]
},
{
"match_title": "Data Channel",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=687:922", "--autofit=1064", "$url"]
}
]}, {
"title": "Onboard, track and data (3440x1440 + PLC)",
"targets": [
{
"match_title": "Pit Lane",
"command": ["mpv", "--start=0", "--quiet", "--no-border", "--autofit=1750", "--geometry=0:0", "$url"]
},
{
"match_title": "Lewis Hamilton",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=1748:0", "--autofit=860", "$url"]
},
{
"match_title": "Daniel Ricciardo",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=2600:0", "--autofit=860", "$url"]
},
{
"match_title": "Charles Leclerc",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=1748:483", "--autofit=860", "$url"]
},
{
"match_title": "Lando Norris",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=2600:483", "--autofit=860", "$url"]
},
{
"match_title": "Max Verstappen",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=1748:960", "--autofit=860", "$url"]
},
{
"match_title": "Sergio Perez",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=2600:960", "--autofit=860", "$url"]
},
{
"match_title": "Driver Tracker",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=0:945", "--autofit=860", "$url"]
},
{
"match_title": "Data Channel",
"command": ["mpv", "--aid=2", "--mute=yes", "--vid=2", "--start=0", "--quiet", "--no-border", "--cache-pause-initial=yes", "--cache-pause-wait=35", "--geometry=687:922", "--autofit=1064", "$url"]
}
]}
]
}
@PhillipAlpha
Copy link

PhillipAlpha commented Mar 31, 2022

it'd be tough to fit to a 1680 by 1050 display tbh, as all the streams are locked in at 16:9 aspect ratio.

the main streams are:

vid=1 480x270
vid=2 512x288
vid=3 640x480
vid=4 960x540
vid=5 1280x720
vid=6 1920x1080 (this is only available for F1 Live, International, Data Channel and Driver Tracker)

so the best way to make it fit is to work out how big these 16:9 windows can be to on your screen with no gaps.

you can scale the width with autofit, but thats still not going to switch it to fit your 16:10 display.

But for top right to fit in would be 100%:0(or you can replace 100% with the width of your top left stream in pixels)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment