{"id":666,"date":"2016-04-25T22:42:22","date_gmt":"2016-04-25T21:42:22","guid":{"rendered":"http:\/\/www.brucewiggins.co.uk\/?p=666"},"modified":"2017-01-06T11:30:45","modified_gmt":"2017-01-06T11:30:45","slug":"youtube-ambisonics-and-vr","status":"publish","type":"post","link":"https:\/\/www.brucewiggins.co.uk\/?p=666","title":{"rendered":"YouTube, Ambisonics and VR"},"content":{"rendered":"<h3>Introduction<\/h3>\n<p>So, last week <a href=\"https:\/\/support.google.com\/youtube\/answer\/6395969?hl=en-GB\" target=\"_blank\">Google enabled head (phone!) tracked positional audio on 360 degree videos<\/a>. \u00a0Ambisonics is now one of the defacto standards for VR audio. \u00a0This is a big moment! \u00a0I&#8217;ve been playing a little with some of the command line tools needed to get this to work, and also with using Google PhotoSphere pics as the video as, currently, I don&#8217;t have access to a proper 360 degree camera. \u00a0You&#8217;ll end up with something like this:<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"520\" height=\"293\" src=\"https:\/\/www.youtube.com\/embed\/VX_gOGFgt14?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-GB&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span><\/p>\n<p>So first, the details.<!--more--><\/p>\n<h3>Make an Ambisonic Mix<\/h3>\n<p>Google are using Ambisonics as the way of storing and steering the audio. \u00a0Ambisonics is a useful format for VR\/gaming as, once encoded, it can still be manipulated\/rotated without having to have access to all the audio sources\/tracks individually. \u00a0This is great for applications that need to steer the audio render in real time. \u00a0So, the Ambisonic signals can then be decoded to loudspeakers or, in this case, head related transfer functions (HRTFs) instead, resulting in signals ready\u00a0for headphones. \u00a0Now, instead of rotating the speakers (HRTFs) when the head moves, the Ambisonic scene is rotated instead, which is a much simpler transform. \u00a0One early paper on this technique is McKeag and McGrath (1996)\u00a0and I also looked at it in my PhD report too (page 103 of <a href=\"http:\/\/www.brucewiggins.co.uk\/papers\/BW_PhDThesis.pdf\" target=\"_blank\">Wiggins 2004<\/a>). \u00a0YouTube currently utilises 1st Order Ambisonics (4 channels) and uses the ACN channel sequencing\u00a0and SN3D normalisation scheme. \u00a0<strong>WARNING: THIS ISN&#8217;T WHAT ANY MICs or MOST PLUG-INS OUTPUT!<\/strong>\u00a0 However, it is a more extendable\u00a0format (channel sequence\u00a0wise). \u00a0A simple, but necessary channel remapping and gain change <strong>MUST<\/strong> be done before saving the 4 Channel B-Format Bus. \u00a0I&#8217;ve made a JS (Reaper) plug-in that does this. \u00a0It can be downloaded below (it&#8217;ll work up to 3rd Order, 16 channels, but YouTube only accepts 1st order&#8230;for now \ud83d\ude09 \u00a0As always, other people&#8217;s tools are also available to do this, but as a learning exercise (so I can teach it at Derby!) I&#8217;ve made my own. (<a href=\"http:\/\/reaperblog.net\/2015\/06\/quick-tip-how-to-install-js-plugins\/\" target=\"_blank\">How to install a JS Effect<\/a>)<\/p>\n<p><a href=\"http:\/\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/WigAmbiRemap.zip\">WigAmbiRemap JS Effect<\/a><\/p>\n<p>So, at this point, let&#8217;s pretend you&#8217;ve made\/recorded an Ambisonic mix (perhaps after watching <a href=\"http:\/\/www.brucewiggins.co.uk\/?page_id=215\" target=\"_blank\">these videos<\/a>). \u00a0You then need to put the plug-in above on the Total B-Format Bus track (or one that is routed from it, ideally, so it doesn&#8217;t mess up your speaker decode!). \u00a0You can then set the plug-in as shown below and it&#8217;ll turn your FurseMalham\/SoundField B-Format into AmbiX B-Format.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"668\" data-permalink=\"https:\/\/www.brucewiggins.co.uk\/?attachment_id=668\" data-orig-file=\"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/AmbiSignalRemap.jpg?fit=423%2C117&amp;ssl=1\" data-orig-size=\"423,117\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"AmbiSignalRemap\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/AmbiSignalRemap.jpg?fit=423%2C117&amp;ssl=1\" class=\"alignnone size-full wp-image-668\" src=\"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/AmbiSignalRemap.jpg?resize=423%2C117\" alt=\"AmbiSignalRemap\" width=\"423\" height=\"117\" srcset=\"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/AmbiSignalRemap.jpg?w=423&amp;ssl=1 423w, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/AmbiSignalRemap.jpg?resize=300%2C83&amp;ssl=1 300w\" sizes=\"auto, (max-width: 423px) 100vw, 423px\" \/><\/p>\n<p>This should now be rendered\/saved as a 4-channel WAVE file (again, see the videos on the <a href=\"http:\/\/www.brucewiggins.co.uk\/?page_id=215\" target=\"_blank\">teaching page<\/a> if you&#8217;re not sure how to do this. \u00a0I&#8217;ll make a new video covering all of this soon!)<\/p>\n<h3>Generate a 360 Photo<\/h3>\n<p>Ok, so what about a stereoscopic, 360 degree video? \u00a0Well, I don&#8217;t have a camera for these, so instead, I&#8217;ve used a jpeg made by the excellent Google Camera app on Android (a PhotoSphere). \u00a0Note, that just as this feature has become really useful, Google has <a href=\"http:\/\/phoneradar.com\/google-camera-app-missing-google-play-store-download-apk\/\" target=\"_blank\">taken Google Camera off the Play Store<\/a>!!!! \u00a0It can still be found on APK mirror sites, though (see <a href=\"http:\/\/www.apkmirror.com\/apk\/google-inc\/camera\/\">here<\/a>, for example, but my phone is stuck on V2.5.052 &#8211; I think V3+ is only for Nexus devices, hence why I can no longer see it on the play store).<\/p>\n<p>So, let&#8217;s assume\u00a0we now have the following:<\/p>\n<ol>\n<li>An\u00a0ambiX 4 channel B-Format Wave File (ambiX.wav)<\/li>\n<li>A high resolution photosphere jpg (PS.jpg)<\/li>\n<\/ol>\n<p>The PhotoSphere jpeg is an equirectangular mapped 360 degree image. \u00a0This is handy, as it&#8217;s the exact format that YouTube wants. \u00a0However, for it to work, you may need to reduce the resolution of the image so that it&#8217;s a maximum of 3840 x 2160 (my images are higher res than that, but YouTube wouldn&#8217;t process them!) \u00a0Details on video formats\/tips can be found\u00a0at this <a href=\"https:\/\/support.google.com\/youtube\/answer\/6178631?hl=en-GB\" target=\"_blank\">google help page<\/a>.<\/p>\n<p>Now, you&#8217;re gonna need a few more tools.<\/p>\n<ol>\n<li><a href=\"https:\/\/ffmpeg.org\/download.html\" target=\"_blank\">FFMPEG<\/a> &#8211; we need this to glue our video (well, picture!) to our audio<\/li>\n<li><a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\">Python<\/a><\/li>\n<li>The <a href=\"https:\/\/github.com\/google\/spatial-media\" target=\"_blank\">Google Spatial Media Python tools<\/a> to then tag this video as being spherical AND Ambisonic.<\/li>\n<li>Note &#8211; I used <a href=\"http:\/\/brew.sh\/\" target=\"_blank\">homebrew<\/a> to install both Python and FFMPEG with a load of libraries enabled on my Mac<\/li>\n<\/ol>\n<h3>Make the Video<\/h3>\n<p>So, now\u00a0we&#8217;ve got our jpeg (say PS.jpg) and our 4 channel Wave file (say ambiX.wav) in the same directory. \u00a0If I want to glue the jpg, as a video, and the wave file together in a .MOV container (the best combination I&#8217;ve found as yet!), then type this, replacing the filenames with yours (from the command line\/terminal):<\/p>\n<p>ffmpeg -loop 1 -i PS.jpg -i ambiX.wav -map 1:a -map 0:v -c:a copy -channel_layout 4.0 -c:v libx264 -b:v 40000k -bufsize 40000k -shortest PSandAmbiX.mov<\/p>\n<p>NOTE: the above\u00a0<em>used<\/em> to say &#8230; -channel_layout quad &#8230; however, that&#8217;s not correct and is no longer accepted by YouTube. \u00a0Thanks Dillon for the tip&#8230;<\/p>\n<p>This will (in order). \u00a0Loop the jpg input and use the wave input mapping the video from the 1st and audio from the other in a quad audio video using the libx264 library, setting the bitrate and how often to calculate the average bitrate, and specifying the length of the video as the shortest of the two \u00a0(the jpg loops for ever!) \u00a0Phew!<\/p>\n<h3>Tag the Video<\/h3>\n<p>This video now needs tagging as a spherical\/Ambisonic video. \u00a0Again, from the command line\/terminal, start the google spatial tools:<\/p>\n<pre>cd &lt;location of your spatial media tools folder&gt;\r\npython gui.py<\/pre>\n<p>Then, select the options as shown below and save the new video file (it&#8217;ll automatically add _injected to your file name) as a separate file:<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"669\" data-permalink=\"https:\/\/www.brucewiggins.co.uk\/?attachment_id=669\" data-orig-file=\"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/spatialmediatools.jpg?fit=371%2C242&amp;ssl=1\" data-orig-size=\"371,242\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Google Spatial Media Tools GUI\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/spatialmediatools.jpg?fit=371%2C242&amp;ssl=1\" class=\"alignnone size-full wp-image-669\" src=\"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/spatialmediatools.jpg?resize=371%2C242\" alt=\"Google Spatial Media Tools GUI\" width=\"371\" height=\"242\" srcset=\"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/spatialmediatools.jpg?w=371&amp;ssl=1 371w, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/spatialmediatools.jpg?resize=300%2C196&amp;ssl=1 300w\" sizes=\"auto, (max-width: 371px) 100vw, 371px\" \/><\/p>\n<p>Now, you\u00a0should have a video file called PSandAmbiX_injected.mov. \u00a0Your video is now ready to be uploaded to YouTube. \u00a0Note that the audio won&#8217;t react to head movement straight away &#8211; it can take several hours for the Google servers to process the audio, and it also may look lower res, than it&#8217;ll eventually become, while is processes the video too!<\/p>\n<p>Happy VR&#8217;ing!<\/p>\n<h3>Acknowledgements<\/h3>\n<p>Special thanks to Dillon Cower and Paul Roberts over at Google and especially\u00a0<a href=\"https:\/\/www.youtube.com\/channel\/UC6_696Vph-306CVsenXvbvQ\" target=\"_blank\">Albert Leusink<\/a> and the <a href=\"https:\/\/www.facebook.com\/groups\/positional.audio.in.vr\/\" target=\"_blank\">Spatial Audio in VR<\/a> facebook group for tips and info on, in particular, FFMPEG usage and video container formats.<\/p>\n<h3>References\/Links<\/h3>\n<ul>\n<li>McKeag, A. and McGrath, D. (1996). \u201cSound field format to binaural decoder with head tracking\u201d, in Preprint 4302, AES Convention<\/li>\n<li>Wiggins, B. (2004) &#8220;<a title=\"Version - Downloaded 1811 times \" href=\"http:\/\/www.brucewiggins.co.uk\/wp-content\/plugins\/download-monitor\/download.php?id=4\">An Investigation into the Real-time Manipulation and Control of Three-dimensional Sound Fields.<\/a>&#8221;\u00a0PhD thesis, University of Derby, Derby, UK.<\/li>\n<li><a href=\"https:\/\/github.com\/google\/spatial-media\">Google Spatial Media Tools<\/a><\/li>\n<li><a href=\"https:\/\/ffmpeg.org\/download.html\">FFMPEG<\/a><\/li>\n<li><a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\">Python<\/a><\/li>\n<li><a href=\"http:\/\/brew.sh\/\" target=\"_blank\">homebrew<\/a><\/li>\n<li><a href=\"http:\/\/reaper.fm\/\">Reaper<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/youtube\/answer\/6178631?hl=en-GB\">YouTube Upload 360-Video Help<\/a><\/li>\n<li><a href=\"http:\/\/www.apkmirror.com\/apk\/google-inc\/camera\/\">APK Mirror<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introduction So, last week Google enabled head (phone!) tracked positional audio on 360 degree videos. \u00a0Ambisonics is now one of the defacto standards for VR audio. \u00a0This is a big moment! \u00a0I&#8217;ve been playing a little with some of the command line tools needed to get this to work, and also with using Google PhotoSphere &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.brucewiggins.co.uk\/?p=666\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;YouTube, Ambisonics and VR&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,4,36],"tags":[39,33,40,37,38,22],"class_list":["post-666","post","type-post","status-publish","format-standard","hentry","category-ambisonics","category-research","category-vr","tag-39","tag-ambisonics","tag-ambix","tag-binaural","tag-vr","tag-wigware"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2iYFT-aK","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":744,"url":"https:\/\/www.brucewiggins.co.uk\/?p=744","url_meta":{"origin":666,"position":0},"title":"Sounds in Space &#8211; Audio for Virtual Reality Animations","author":"Bruce Wiggins","date":"July 27th,  2016","format":false,"excerpt":"I've had a few people ask for me to share the animations from my Surround Audio for VR presentation that I delivered\u00a0at Sounds in Space this year. \u00a0I've made a video of the powerpoint (30 seconds per slide) so everything can be viewed in context (note there's no audio, though!).\u2026","rel":"","context":"In &quot;Ambisonics&quot;","block_context":{"text":"Ambisonics","link":"https:\/\/www.brucewiggins.co.uk\/?cat=3"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/img.youtube.com\/vi\/gAmXcPfrj-M\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":700,"url":"https:\/\/www.brucewiggins.co.uk\/?p=700","url_meta":{"origin":666,"position":1},"title":"YouTube 360 VR Ambisonics Teardown!","author":"Bruce Wiggins","date":"April 28th,  2016","format":false,"excerpt":"UPDATE : 4th May 2016 - I've added a video using the measured filters. This will be useful for auditioning the mixes before uploading them to YouTube. So, I've\u00a0been experimenting with YouTube's Ambisonic to Binaural VR videos. \u00a0They work, sound spacious and head tracking also functions (although there seems to\u2026","rel":"","context":"In &quot;Ambisonics&quot;","block_context":{"text":"Ambisonics","link":"https:\/\/www.brucewiggins.co.uk\/?cat=3"},"img":{"alt_text":"You Tube HRIRs 0 degrees","src":"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/04\/YouTubeHRIRs00-300x222.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1008,"url":"https:\/\/www.brucewiggins.co.uk\/?p=1008","url_meta":{"origin":666,"position":2},"title":"Sounds in Space 2017 Live Streams","author":"Bruce Wiggins","date":"June 26th,  2017","format":false,"excerpt":"Tomorrow we're holding our annual\u00a0Sounds in Space Research Symposium. \u00a0This year we've decided to stream the entire event on both YouTube and Facebook using binaural audio (well, Ambisonics to binaural as it happens). \u00a0The event is 9.30am (GMT+1) until around 5.00pm. \u00a0If you're interested in watching the events, here's the\u2026","rel":"","context":"In &quot;Ambisonics&quot;","block_context":{"text":"Ambisonics","link":"https:\/\/www.brucewiggins.co.uk\/?cat=3"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1785,"url":"https:\/\/www.brucewiggins.co.uk\/?p=1785","url_meta":{"origin":666,"position":3},"title":"New AmbiX WigWare Plugins Available","author":"Bruce Wiggins","date":"January 20th,  2022","format":false,"excerpt":"After some time, I decided to both update my Ambisonic tools to support the AmbiX standard (now widely used for immersive audio, 360 videos and VR) and rework my speaker array decoders using JSFX to make them a little more powerful and with a better workflow for me to quickly\u2026","rel":"","context":"With 9 comments","block_context":{"text":"With 9 comments","link":"https:\/\/www.brucewiggins.co.uk\/?p=1785#comments"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2022\/01\/image.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2022\/01\/image.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2022\/01\/image.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2022\/01\/image.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2022\/01\/image.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2022\/01\/image.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1013,"url":"https:\/\/www.brucewiggins.co.uk\/?p=1013","url_meta":{"origin":666,"position":4},"title":"Sounds in Space 2017 Pictures","author":"Bruce Wiggins","date":"June 30th,  2017","format":false,"excerpt":"Well, we had a lovely time at Sounds in Space again, this year. \u00a0Thanks to all who contributed to the day (guests, presenters, poster peeps and generous sponsors!). \u00a0I'll be uploading and sharing presentations\/videos from the day, soon, but in the meantime, here are some pictures (some of the 360\u2026","rel":"","context":"In &quot;Ambisonics&quot;","block_context":{"text":"Ambisonics","link":"https:\/\/www.brucewiggins.co.uk\/?cat=3"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2017\/06\/DSC_3178.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2017\/06\/DSC_3178.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2017\/06\/DSC_3178.jpg?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2017\/06\/DSC_3178.jpg?resize=700%2C400 2x, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2017\/06\/DSC_3178.jpg?resize=1050%2C600 3x, https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2017\/06\/DSC_3178.jpg?resize=1400%2C800 4x"},"classes":[]},{"id":730,"url":"https:\/\/www.brucewiggins.co.uk\/?p=730","url_meta":{"origin":666,"position":5},"title":"YouTube Binaural Reaper Project","author":"Bruce Wiggins","date":"May 12th,  2016","format":false,"excerpt":"So, here's an example (but empty) Reaper project that contains the YouTube binaural filters I measured. \u00a0You'll need to use your preferred Ambisonics plug-ins of choice, and I'm assuming FuMa channel ordering etc.. they'll be remapped by a plug-in. There is a bundle of JS effects in the folder too,\u2026","rel":"","context":"In &quot;Ambisonics&quot;","block_context":{"text":"Ambisonics","link":"https:\/\/www.brucewiggins.co.uk\/?cat=3"},"img":{"alt_text":"YouTubeBinProject","src":"https:\/\/i0.wp.com\/www.brucewiggins.co.uk\/wp-content\/uploads\/2016\/05\/YouTubeBinProject-300x166.jpg?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=666"}],"version-history":[{"count":21,"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/666\/revisions"}],"predecessor-version":[{"id":855,"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/666\/revisions\/855"}],"wp:attachment":[{"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.brucewiggins.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}