π Synced from upstream: NOAA-GSL/zyra#280
This issue is mirrored from the upstream repository. Status changes here will be synced back.
We're using Zyra as the rendering engine behind TerraViz's scheduled
real-time dataset pipelines β datasets render to MP4 on GitHub Actions
and publish into a web/sphere catalog
(https://github.com/zyra-project/terraviz). The network serves two
kinds of content with different geometry expectations:
- Global datasets (the classic Science On a Sphere case): 2:1
equirectangular, with a hard display spec of 4096Γ2048, 30 fps,
H.264 yuv420p.
- Regional / non-global datasets from other nodes in the network:
arbitrary aspect ratios by nature β a 2:1 constraint would be wrong
for them.
What works today
compose-video's defaults (-framerate 30 β¦ -r 30 -vcodec libx264 -pix_fmt yuv420p) already produce spec-compliant output when fed
4096Γ2048 frames β verified end-to-end with the DroughtRisk_Weekly
sequence (ffprobe: 4096x2048 h264 30.00fps, zero deviations).
The gap
There's no way to declare intent. A pipeline meant to produce global
sphere content silently passes through frames at any resolution/aspect,
and the mismatch is discovered downstream after rendering. Conversely,
any blanket enforcement would break regional content.
Proposal
An opt-in preset family rather than enforcement:
--preset sos-global β scale/pad to 4096Γ2048, warn loudly when the
source aspect isn't ~2:1, pin 30 fps / H.264 / yuv420p, fail fast if
the spec can't be met.
- Defaults unchanged for everyone else; regional pipelines simply don't
pass a preset (or a future --preset sos-regional could pin
codec/fps while leaving geometry alone).
Given NOAA GSL's SOS heritage, declared-intent presets seem like a
natural fit, and they'd let downstream consumers replace post-hoc
validation with up-front declaration.
We're using Zyra as the rendering engine behind TerraViz's scheduled
real-time dataset pipelines β datasets render to MP4 on GitHub Actions
and publish into a web/sphere catalog
(https://github.com/zyra-project/terraviz). The network serves two
kinds of content with different geometry expectations:
equirectangular, with a hard display spec of 4096Γ2048, 30 fps,
H.264 yuv420p.
arbitrary aspect ratios by nature β a 2:1 constraint would be wrong
for them.
What works today
compose-video's defaults (-framerate 30 β¦ -r 30 -vcodec libx264 -pix_fmt yuv420p) already produce spec-compliant output when fed4096Γ2048 frames β verified end-to-end with the DroughtRisk_Weekly
sequence (ffprobe:
4096x2048 h264 30.00fps, zero deviations).The gap
There's no way to declare intent. A pipeline meant to produce global
sphere content silently passes through frames at any resolution/aspect,
and the mismatch is discovered downstream after rendering. Conversely,
any blanket enforcement would break regional content.
Proposal
An opt-in preset family rather than enforcement:
--preset sos-globalβ scale/pad to 4096Γ2048, warn loudly when thesource aspect isn't ~2:1, pin 30 fps / H.264 / yuv420p, fail fast if
the spec can't be met.
pass a preset (or a future
--preset sos-regionalcould pincodec/fps while leaving geometry alone).
Given NOAA GSL's SOS heritage, declared-intent presets seem like a
natural fit, and they'd let downstream consumers replace post-hoc
validation with up-front declaration.