{"id":28523104,"url":"https://github.com/evgenii-d/panorama-viewer","last_synced_at":"2025-07-06T03:30:39.238Z","repository":{"id":217942883,"uuid":"745166442","full_name":"evgenii-d/panorama-viewer","owner":"evgenii-d","description":"360 Photo Video Panorama Viewer","archived":false,"fork":false,"pushed_at":"2024-09-12T08:59:28.000Z","size":3034,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-09T10:04:15.121Z","etag":null,"topics":["360-photo","360-video","360-view","360-viewer","minimap","unity","vr","vr-viewer"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evgenii-d.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-18T19:14:30.000Z","updated_at":"2025-04-06T17:08:24.000Z","dependencies_parsed_at":"2024-01-18T22:18:43.993Z","dependency_job_id":"8222bb40-6bf2-40ca-8846-1df6abba5916","html_url":"https://github.com/evgenii-d/panorama-viewer","commit_stats":null,"previous_names":["evgenii-d/panoramaviewer"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/evgenii-d/panorama-viewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evgenii-d%2Fpanorama-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evgenii-d%2Fpanorama-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evgenii-d%2Fpanorama-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evgenii-d%2Fpanorama-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evgenii-d","download_url":"https://codeload.github.com/evgenii-d/panorama-viewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evgenii-d%2Fpanorama-viewer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263842956,"owners_count":23518692,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["360-photo","360-video","360-view","360-viewer","minimap","unity","vr","vr-viewer"],"created_at":"2025-06-09T10:04:13.905Z","updated_at":"2025-07-06T03:30:39.212Z","avatar_url":"https://github.com/evgenii-d.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PanoramaViewer\n\n360 Photo Video Panorama Viewer\n\nFeatures:\n\n* Automatic playback\n* Transition between panoramas with a Fade In/Fade Out effect\n* Zoom In with Right Mouse Button (Windows/Linux) or two-finger tap (Android)\n* Switch between panoramas using the Arrow Left/Page Down and Arrow Right/Page Up keys (**autoPlay** must be set to `false`)\n\nMade with Unity 2022.3.16.f\n\nTested on Windows 11 (23H2), Ubuntu 22.04, Android 13\n\n## Compatible files\n\n### 360 content\n\n|Type|Images|Videos|\n|----------|----------|----------|\n|spherical (2:1)|+|+|\n|stereo spherical equirectangular (1:1)|+|+|\n|cubemap (6:1)|+||\n\n### File formats\n\n|Images|Videos|\n|------|------|\n|.jpg|.mp4 (H.264, H.265; AAC)|\n|.png|.webm (VP8; Vorbis)|\n\n#### Recommended encoding settings for ffmpeg\n\n`ffmpeg -i input.mov -c:v libx264 -pix_fmt yuv420p -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range pc -vf scale=XXXX:XXXX -preset medium -crf 23 -c:a aac output.mp4`\n\n`ffmpeg -i input.mov -c:v libx265 -pix_fmt yuv420p -color_primaries bt709 -color_trc bt709 -colorspace bt709 -color_range pc -vf scale=XXXX:XXXX -profile:v main -level:v 3.0 -c:a aac output.mp4`\n\nReferences:\n\n* [Unity Manual. Video file compatibility][1]\n* [Android for Developers. Supported media formats][2]\n* [FFmpeg. H.264 Video Encoding Guide][3]\n* [FFmpeg. H.265/HEVC Video Encoding Guide][4]\n\n## Application Settings\n\nThere are two `.json` files that will be generated upon the first launch: **PanoramaViewerSettings** and **FreeCameraSettings**.\n\nPath to the setting files:\n\n* Android: `/storage/emulated/\u003cuserid\u003e/Android/data/\u003cpackagename\u003e/files`\n* Windows/Linux: Application folder\n\n### PanoramaViewerSettings.json\n\n```json\n{\n    \"autoPlay\": true,\n    \"imageDelay\": 15.0,\n    \"fadeDuration\": 2.0,\n    \"imageFormats\": [\n        \".jpg\",\n        \".png\"\n    ],\n    \"videoFormats\": [\n        \".mp4\",\n        \".webm\"\n    ]\n}\n```\n\n### FreeCameraSettings.json\n\n```json\n{\n    \"fieldOfView\": 60.0,\n    \"mouseSensitivity\": 1.0,\n    \"zoom\": true,\n    \"zoomMagnification\": 1.5\n}\n```\n\n## Nota bene\n\n### Android Settings\n\n#### Build settings\n\nEdit \u003e Project Settings \u003e Player \u003e Android Settings \u003e Other Settings\n\nUnder Configuration\n\n* Set **Scripting Backend** to **IL2CPP**\n* Disable ARMv7\n* Enable ARM64\n\n#### Custom Main Manifest\n\nEdit \u003e Project Settings \u003e Player \u003e Android Settings \u003e Publishing Settings \u003e Enable **Custom Main Manifest**\n\nExample of custom manifest with additional permissions\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cmanifest\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.unity3d.player\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\u003e\n    \u003capplication\u003e\n        \u003cactivity android:name=\"com.unity3d.player.UnityPlayerActivity\"\n                  android:theme=\"@style/UnityThemeSelector\"\u003e\n            \u003cintent-filter\u003e\n                \u003caction android:name=\"android.intent.action.MAIN\" /\u003e\n                \u003ccategory android:name=\"android.intent.category.LAUNCHER\" /\u003e\n            \u003c/intent-filter\u003e\n            \u003cmeta-data android:name=\"unityplayer.UnityActivity\" android:value=\"true\" /\u003e\n        \u003c/activity\u003e\n    \u003c/application\u003e\n    \u003cuses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" /\u003e\n    \u003cuses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" /\u003e\n\u003c/manifest\u003e\n```\n\n### Include shaders\n\nEdit \u003e Project Settings \u003e Graphics\n\nUnder **Built-in Shader Settings** change **Size** and select required shader\n\n[1]:https://docs.unity3d.com/Manual/VideoSources-FileCompatibility.html\n[2]:https://developer.android.com/media/platform/supported-formats#recommendations\n[3]:https://trac.ffmpeg.org/wiki/Encode/H.264\n[4]:https://trac.ffmpeg.org/wiki/Encode/H.265\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevgenii-d%2Fpanorama-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevgenii-d%2Fpanorama-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevgenii-d%2Fpanorama-viewer/lists"}