Git Product home page Git Product logo

spatial-media's Introduction

spatial-media's People

Contributors

acolwell avatar anjaliwheeler avatar antonkast-google avatar ascherkus avatar damienkelly avatar dcoffey3296 avatar dcower avatar deepakthi avatar emericg avatar fcartegnie avatar hbengali avatar jamiesonpepper avatar jkammerl avatar jprouty avatar juliusjacobsohn avatar kant avatar kodawah avatar mgorzel avatar movalex avatar nbirkbeck avatar pwroberts avatar rsuderman avatar rzurad avatar sinz163 avatar sk-gg avatar tongwenchao avatar zougloub avatar zupolgec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spatial-media's Issues

Encoder for tool

Hi I would like to investigate this spec and hopefully integrate into dash.js and three.js projects. How do you go about encoding a video with an ambisonics wav stem ?

Ffmpeg doesn't seem to support such things. Is there example mp4 files to test this tool ? A bit unsure how to package a file first for testing the tool and spec.

I guess packagers will need to support the final output also.

Are these individual streams muxed in or do the players need to parse and decode and handle panning with audio apis ? I've yet to find how it would be possible decoding the 4 channel ambisonics stream yet.

Workflow Question

Hi. I'm looking into adding Ambisonic Audio to video files, but I'm not quite clear of the workflow/tools.

Jump Inspector help suggests making an MKV from a MP4/MOV/MKV video with an Ambisonic Wave file added.

Spatial media tools (to add required meta data) only works on MP4 files (and not Wave or MKV files).

So, if I have an audio free .MOV video and 4-channel wave file containing Ambix Audio, what do I have to do to get them working correctly other than using FFMPEG to glue them together as per the Jump inspector help file.

Do I have to tag both the video and audio files BEFORE FFMPEGing them? Or do I really need to FFMPEG them to an MP4 and then use the spatial-media tools to give them the correct meta-data?

We've got plenty of videos with Ambisonic audio (up to 4th order) and it'd be great to be able to present them in this way.

cheers

Bruce

command line broken since lastest commit

Hi,

Since the latest commit to master branch, the command line no longer works. Error stacktrace:

Processing: /Users/munwaikong/Desktop/video.mp4
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/Users/munwaikong/Documents/spatial-media/spatialmedia/main.py", line 96, in
main()
File "/Users/munwaikong/Documents/spatial-media/spatialmedia/main.py", line 81, in main
inject_metadata(args[0], args[1], spherical_xml, console)
File "/Users/munwaikong/Documents/spatial-media/spatialmedia/../spatialmedia/spherical.py", line 405, in inject_metadata
if (metadata.audio and extension != ".mp4"):
AttributeError: 'str' object has no attribute 'audio'

It seems that the 'inject_metadata' method is called passing a 'spherical_xml' (string) instead of the new Metadata() object.

360videosmetadata.py

I was directed here by this page: https://support.google.com/youtube/answer/6178631?hl=en
and told to download the zip and run the 360videosmetadata.py script, but it is no longer included in the zip and I can't figure out how to make the current script(s) work. I am new to python, and trying to inject 360 metadata into a equirectangular 360 video for youtube. Any help appreciated.

Stereo

Hi Guys,

I was wondering if the stereo mode was active on Youtube. I tried the script with a 360 3d video, but no success. Video is 360 if i deactivate the 3D option in the Youtube video manager but flat if i turn it back on.

launches and quits

hello, i just downloaded the Spatial Media Metadata Injector app on two different macs (10.7.5 and 10.8.5) and on both machines the application quit immediately after launching. Is there a compatibility issue? I'm not sure what the explanation could be. I tried to use the python script as well but am not very familiar with the command line and ran into a syntax error....

Thank you for any advice with this issue.

youtube upload is not in HD. ( video manager says its HD, but will not playback in hd )

The youtube video manager shows the file in HD.
However the upload does not
Small Sample.
https://youtu.be/k5qDIr599kc

Large Sample.
https://youtu.be/AxR_MLAvgFI

The files that work on youtube have the following meta data:

$ python spatialmedia ~/Videos/2016/2016.04.03.Ranch_1st_theta-s/R0010009_er.MP4
Processing: /home/jds/Videos/2016/2016.04.03.Ranch_1st_theta-s/R0010009_er.MP4
Loaded file...
Track 0
Spherical = true
Stitched = true
ProjectionType = equirectangular
StitchingSoftware = RICOH THETA::DualfishBlender.exe 2.1.0.2016.02.08
SourceCount = 1
Timestamp = 3542555697
Track 1

The files that dont work have the following 'injected' metadata
$ python spatialmedia ~/Videos/360small3_i.mp4
Processing: /home/jds/Videos/360small3_i.mp4
Loaded file...
Track 0
Track 1
Spherical = true
Stitched = true
StitchingSoftware = Spherical Metadata Tool
ProjectionType = equirectangular

A bit more context: ( I have windows, mac, and linux all at my disposial. )
The Camera is a Theta S camera. I donwnloaded the file and converted it using theta
s windows application. I then brough those samples into lightworks and did the magic.
I exported ( every flavor of MP4 I can think of ;)

I then stitched in the spherical medadata using spatialmedia.

Any ideas of where I am going wrong?

p.s. these have had about a day to upload... so 'plenty of time' to farm out to there servers.

Thanks,
Jeff

Injector not working on large video files?

I couldn't find anywhere else to post this issue. Youtube haven't help yet: https://productforums.google.com/forum/?utm_medium=email&utm_source=footer#!topic/youtube/jZJyJn4WTLg;context-place=forum/youtube

I have rendered a Apple Pro Res 422 HQ file which results in a 31 GB .mov

I rename it to .mp4 and inject the metadata. Save a new file and waited 10+ hours and the file never gets written. (tried with terminal for a night as well)

I tested to see if it was .mov issue or Injector handling huge files:

Tested the same render of a 1 second version Apple Pro Res 422 HQ file which results in a 330 MB .mov
I rename it to .mp4 and inject the metadata. Save a new file and it worked. (uploaded and played as a 360 video)

So the injector works on .mov renamed .mp4 on small files.

Large files? Please help

Please use FuMa channel ordering

Despite certain academic biases toward ACN (WYZX) channel ordering due to its algorithmic elegance (particularly in the case order > 1), FuMa (WXYZ) is the prevailing channel ordering used by b-format post-production tools such as:

  • VVAudio Virtual Tetra Mic
  • Blue Ripple Sound
  • Ambisonics Toolkit
  • TwoBigEars Spatial Workstation
  • Dolby Atmos

Other tools (such as Harpex) allow for the option of FuMa in addition to ACN.

Blue Ripple is, in fact, the only fully featured higher order post-production toolset available today, and it uses FuMa for up to 3rd order. This makes their HOA mixes compatible with traditional 1st-order WXYZ material without the need for conversion.

The choice of ACN will lead to confusion and errors in publishing, since almost all material authored in b-format will be "classic" 1st order b-format, or FuMa in the case of HOA.

Initial view port invalid

Hi,
I am add initial view port degree info in mov container and upload to YouTube, it isn't work! The video parse info by spatialmedia:
Processing: G:\VIDEO\20120612_231444M.MOV
Loaded file...
Track 0
Spherical = true
Stitched = true
StitchingSoftware = Icatchtek 6350 software
ProjectionType = equirectangular
InitialViewHeadingDegrees = -90
InitialViewPitchDegrees = 180
InitialViewRollDegrees = 45
Track 1

Thanks!

Added metadata but no spherical video is played at YT

Sorry if this isn't the place to write about this, please point me there.

I've just used the script to add the metadata to a spherical video, getting this output:

Loaded file settings
    Track 0
        Found: Spherical = true
        Found: Stitched = true
        Found: StitchingSoftware = Spherical Metadata Tool
        Found: ProjectionType = equirectangular
    Track 1

But the video uploaded on YT shows no 360 controls, like a normal one, although the 'processed' it's a little heavier than the original.

What could be wrong?

360 intervals in a video

I apologize if this isn't the right place to ask this type of question, but if someone can point me in the right direction it would be greatly appreciate it.

I'm wondering if there is a way to make portions of a video 360 degrees. Basically I would like some portions of a video to be standard 2D and other parts to be 360 in the same video. Is there a way to specify in the metadata that from 0 to 30 seconds show 2D video and from 30 seconds to 60 seconds put the video in 360 mode. Or possibly by frames instead of seconds?

windows 32

Hello,

Where can I find the exe for windows 32 ? Or how can the present download for windows work on windows 32 ? It doesnt execute at all.

Kindly regards, Martine

Bug in atom.set

Hello,

I was randomly browsing your codebase when I noticed that atom.set appears to not actually set the contents of an atom properly due to the lack of the "self." prefix. In order to fix this bug, I believe

def set(self, new_contents):
        """Sets the atom contents. This can be used to change an atom's
        contents"""
        contents = new_contents
        content_size = len(contents)

should be replaced with

def set(self, new_contents):
        """Sets the atom contents. This can be used to change an atom's
        contents"""
        self.contents = new_contents
        self.content_size = len(contents)

Hope this helps!

Release 32-bit Windows version of script

User feedback: released binary doesn't work on 32-bit windows and user claims cannot run script directly since it requires Python 2.x and they have Python 3.x

Youtube 360 metadata tool only has one StereoMode value

If I input a "Left Right" file, I should definitely leave the "3D Top Bottom" box unselected, however when I do so, the StereoMode tag is not set in the metadata.

This is very ambiguous, as the specifications indicate that absence of StereoMode tag means "mono", not "Left Right". So there could be a lot of files incorrectly tagged with this software (which is detrimental to the adoption of spherical video).

I am not sure if the spec draft is wrong or if this is simply a bug in the metadata tool, but I hope it is something that will be addressed.

3D audio on youtube player

Hello,

As I read it on another thread below, it seems that youtube player is not yet compatible with ambisonics content. True right ?

Therefore, is there any other mean to render live 3D audio on youtube (particularly on headphones) currently ?

Thanks a lot for your answers

Ambisonics support live in player?

I tried exporting a test file with a first order ambisonics mix and injecting the metadata with the current injector, but my upload to youtube doesn't seem to play the ambisonic mix correctly. Is support live on the player, or is this just in preparation for a future rollout?

File parsing could be a bit more robust / helpful when it goes wrong

Today if we barf parsing an mp4 we get an unhelpful stack trace:

$ ./360VideosMetadata.py not-a-real-file.mp4
Processing: /src/spatial-media/360-Videos-Metadata/not-a-real-file.mp4

Traceback (most recent call last):
File "./360VideosMetadata.py", line 827, in
main()
File "./360VideosMetadata.py", line 819, in main
PrintMetadata(src)
File "./360VideosMetadata.py", line 763, in PrintMetadata
ProcessMpeg4(infile, None)
File "./360VideosMetadata.py", line 708, in ProcessMpeg4
mpeg4_file = load_mpeg4(in_fh, 0, total_size)
File "./360VideosMetadata.py", line 475, in load_mpeg4
assert(loaded_mpeg4.moov_atom)
AssertionError

Example references files for spec

Hello.

I'm curious if there are any reference files for the timed metadata portion of the specification we can test our own implementations against, for writing as well as reading.

Thank you.

mercator stereo issues

This is the layout of the original video - mercator stereo.

img

Running default:

./360VideosMetadata.py -i ./original.mp4 out.mp4

outputs:

Saved file settings
    Track 0
        Found: Spherical = true
        Found: Stitched = true
        Found: StitchingSoftware = Spherical Metadata Tool
        Found: ProjectionType = equirectangular
    Track 1
    Track 2

produces incorrect 360 video, same goes for:

./360VideosMetadata.py -i --stereo='top-bottom' ./original.mp4 out.mp4

outputs:

Saved file settings
    Track 0
        Found: Spherical = true
        Found: Stitched = true
        Found: StitchingSoftware = Spherical Metadata Tool
        Found: ProjectionType = equirectangular
        Found: StereoMode = top-bottom
    Track 1

Both 360 vides are displayed incorrectly on yt. Am I missing something?

Thanks .

File write progress would be nice

When using the script on large inputs (e.g., >10GB) it'd be nice to have progress indicator of some sort because it just sorta hangs there.

Not high priority or anything (hey, cp doesn't print out progress!) but something to consider (that or magically make the IO performance super fast -- but I haven't benchmarked this yet and iotop seems to claim it was using a good chunk of available IO bandwidth)

Investigate support for QuickTime .mov formats

Today you can get it to work by changing the file extension from .mov to .mp4 ... but ideally we should have more robust support (e.g., checking ftyp) and/or defining the exact amount of QuickTime-specific stuff we want to support.

MKV/WebM path totally broken

Looks like this code path is still accessible and it's buggy.

First bug: it always prints out a file overwrite prompt if even if file doesn't exist.

$ python 360VideosMetadata.py -i -s top-bottom foo.webm bar.webm
Processing:  /path/to/foo.webm 

Press y <enter> to confirm overwrite
Saved file settings

Second bug: it doesn't actually inject anything!

$ python 360VideosMetadata.py bar.webm
Processing:  /path/to/bar.webm

Loaded file settings

Syntax Error: invalid syntax

i try it.

$ ./360VideosMetadata.py -i input.mp4 output.mp4

show console.

File "./360VideosMetadata.py", line 145
  print "Error, invalid size in "+ name+ " at "+ position
  • MacOSX 10.10.3
  • python 3.3.6(default, Mar 6 2015, 23:47:41)

Mixed Spatial / Non Spatial Audio

Hi!

I noticed that support for the spatial audio is now live in the android youtube app! This is great! Any timeline on browser / ios support?

Also, as a sound designer, I want to note that I would LOVE to see support for playback of a B-Format spatialized mix with a stereo non-spatialized mix, for combining spatialized elements with non-spatial audio (backgrounds / voiceover / non diegetic music) This would go a long way to making the 360 audio experience fantastic on youtube, and give creators a lot of freedom in making great content.

thanks!

Evan

Please note that this requires Python 2.7

The script doesn't work on Python 3.4.3 and its not noted anywhere on the readme, source file, or support page which version of Python should be used. It might be nice to note this somewhere for people that aren't regular Python users.

Can't eject audio metadata

Hello,

I'm having issues injecting the spatial metadata. It allows me to click on the box that I need to use, but will stay in an unless loop when saving. The test clip is only 5 seconds long so it can't imagine it taking over 10min to add metadata, or am I wrong with this mindset?

Injection not seeing input and output files

I'm trying to inject InitialView metadtata into a file. I have used the standalone GUI app to inject spherical tag, and that works. But when I type
python spatialmedia -i [--InitialViewRollDegrees=80] v1.mp4 v1_80.mp4
the command line returns "Injecting Metadata requiores both an input and output file.

I have tried this several ways, but it does not seem to "see" the two files I have given it. What's going on here?
screen shot 2016-02-18 at 3 57 06 pm

Full area smaller than cropped area in RFC xml spec example

In appendix 1 of the rfc, the full area appears to be smaller than the cropped area:

  <GSpherical:CroppedAreaImageWidthPixels>1920</GSpherical:CroppedAreaImageWidthPixels>
  <GSpherical:CroppedAreaImageHeightPixels>1080</GSpherical:CroppedAreaImageHeightPixels>
  <GSpherical:FullPanoWidthPixels>1900</GSpherical:FullPanoWidthPixels>
  <GSpherical:FullPanoHeightPixels>960</GSpherical:FullPanoHeightPixels>
  <GSpherical:CroppedAreaLeftPixels>15</GSpherical:CroppedAreaLeftPixels>
  <GSpherical:CroppedAreaTopPixels>60</GSpherical:CroppedAreaTopPixels>

I feel like I'm missing something here - is this an error, or is there something I'm not understanding about how the cropped/full areas work? Is the 'full' area a resize of the total 'cropped' area once the left and top pixel offsets have been added? I'd love to see a diagram that lays these areas out if possible :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.