Video Production Asked by TrueCP5 on October 28, 2021
I’m working on a library that injects/embeds/writes metadata into a .mp4
file to allow the video to be displayed correctly as a 360 video. The input file is a standard .mp4
file in the equirectangular format which I need to inject the proper metadata to get it to display as a 360 video. I know tools like Google’s Spatial Media Tool exist but if possible I would like to do it with FFmpeg.
The metadata injected by the Spatial Media tool looks like this and is what I am trying to achieve:
<?xml version="1.0"?><rdf:SphericalVideo
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:GSpherical="http://ns.google.com/videos/1.0/spherical/"><GSpherical:Spherical>true</GSpherical:Spherical><GSpherical:Stitched>true</GSpherical:Stitched><GSpherical:StitchingSoftware>Spherical Metadata Tool</GSpherical:StitchingSoftware><GSpherical:ProjectionType>equirectangular</GSpherical:ProjectionType></rdf:SphericalVideo>
These are all the things I have tried which did not work:
ffmpeg -i input.mp4 -movflags use_metadata_tags -metadata Spherical=true -metadata Stitched=true -metadata ProjectionType=equirectangular -metadata StitchingSoftware=StreetviewJourney -codec copy output.mp4
I have tried many variations of it like adding GSpherical:
and xmp:
to the metadata tag.
When I extract the metadata using ffmpeg it contains the spherical tag in the logs but not when I output it to a ffmetadata file. This was the command I used: ffmpeg -i injected.mp4 -map_metadata -1 -f ffmetadata data.txt
This is the output of the log:
fps, 60 tbr, 15360 tbn, 120 tbc (default)
Metadata:
handler_name : VideoHandler
Side data:
spherical: equirectangular (0.000000/0.000000/0.000000)
I also tried to get the metadata using this command: ffprobe -v error -select_streams v:0 -show_streams -of default=noprint_wrappers=1 injected.mp4
This was the logs it outputted:
TAG:handler_name=VideoHandler
side_data_type=Spherical Mapping
projection=equirectangular
yaw=0
pitch=0
roll=0
I then tried to use this command but it didn’t work:
ffmpeg -i chapmanspeak.mp4 -movflags use_metadata_tags -metadata side_metadata_type="Spherical Mapping" -metadata projection=equirectangular -metadata yaw=0 -metadata pitch=0 -metadata roll=0 -codec copy output.mp4
you can try something like this if you just want to transcode instead of writing metadata freshly into the file
sudo ffmpeg -i 360video.MP4 -vcodec libx264 -strict unofficial -vprofile high -acodec aac -f mp4 another.mp4
Answered by Ram on October 28, 2021
Metadata is not the same as frame side data. FFmpeg tool currently cannot do this, you need to program own thing using available API.
Answered by user12174 on October 28, 2021
1 Asked on January 4, 2022 by d9ngle
1 Asked on January 4, 2022 by jose-gmez
1 Asked on December 31, 2021
1 Asked on December 31, 2021 by totymedli
1 Asked on December 26, 2021
after effects after effects expressions after effects scripting
1 Asked on December 26, 2021 by gatzkerob
1 Asked on December 24, 2021 by ramiwi
1 Asked on December 24, 2021 by kaitain
1 Asked on December 19, 2021
1 Asked on December 19, 2021 by med-hammas
0 Asked on December 15, 2021 by jason-van-anden
0 Asked on December 10, 2021 by t_bmn
2 Asked on December 6, 2021 by rjgmore
1 Asked on December 2, 2021 by cecomp64
0 Asked on November 25, 2021 by hownowbrowncouch
1 Asked on November 16, 2021 by kurajber
1 Asked on November 16, 2021 by k7aay
Get help from others!
Recent Answers
© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP