• 6 min read

Customized Renditions and Asset trimming with Dynamic Manifest

In this post, we will review the Azure Media Services Dynamic Manifest (Asset Filters) announcement and details.

As a follow up on Jason’s announcement of our dynamic manifest capabilities last month during NAB, I am pleased to announce that they are now available for you to begin using in your streaming applications. Jason’s post covered many of the common usage scenarios so I encourage you to start there if this is the first time you’re reading about dynamic manifests since here I will primarily focus on technical implementation details. Before going into the details of how it works, I want to provide some background for the following terminologies.

  • Adaptive Bit Rate over HTTP (ABR), adaptive bit rate streaming is a method of video streaming over HTTP where the source content is encoded at multiple bit rates and chunked into small multi-second parts. The streaming client is made aware of the available streams at differing bit rates, and chunks of the streams by a manifest file. To meet the subscriber demand for multi-screen and deliver video to any device across any network, operators use adaptive bit rate (ABR) protocols in their multi-screen implementations, such as Apple HLS, Microsoft Smooth, Adobe HDS and MPEG-DASH.
  • The manifest, sometimes referred to as “the playlist”. This file includes streaming metadata such as qualities, audio languages, and presentation window and also provides the player currently available as well as next playable fragments with their respective locations. It is a text-based or XML file with specific attributes depending on format.  Using “asset filters” which I’ll describe below you can create a dynamic manifest based on the following properties and attributes.
    Track type – audio, video, or text
    Track name
    Start and end time
    Presentation window – sliding window of fixed duration, anchored from live position.
    Bitrate (qualities)
    Track language
    FourCC
  • Fragments/segments, actual chunks of video, audio or text content.

What is a filter?

Asset filter is a combination of rules based on manifest attributes and timeline which describes the streaming endpoint (backend service) how to manipulate the output playlist (Manifest).

Filter Types

There are two types of asset filters; global and local (asset level). Both of the filter types have exactly the same features and uses the same attributes to define filters. The main difference between the two is the scenarios they are suitable for and also where they are stored.

  • Global filters are generally suitable for device profiles (track filtering) whereas local filters are mostly preferred for range filters (trimming), since most of the time trimming is specific to asset.
  • Global filters are stored at the account level and when created can be applied to all assets under the account. Local filters are per asset and can only be used for the asset under which they are created. A local filter’s lifetime is tied to the asset lifetime, in other words when the asset is deleted all local filters created on it are also deleted.

How it works?

Filters can consists of multiple rules. As an example you can define remove slate and apply back-off over a live playlist (manifest) as well as include removing qualities to the combination. For multiple filtering rules the end result is the composition (intersection only) of the rules.

dynamic_manifest8

Creating Filters through Our APIs

Asset filter API is available for Azure Media Service REST version >= 2.11. This release includes only REST APIs and a corresponding .NET SDK is underway which is targeted for following weeks.
You can find more information regarding to Azure Media Services REST from here.

Asset filters consist of two sections (groups); PresentationTimeRange and Tracks.

PresentationTimeRange:

Attribute Description Applies To Constraints
StartTimestamp Media that starts after this timestamp will be included in the playlist (manifest). Live and VOD Absolute time. Value rounded to the closest next GOP start.
EndTimestamp Media that ends before this timestamp will be included in the playlist (manifest). VOD For live presentation it is silently ignored and applies when the presentation ends (Live2VOD) Absolute time. Value rounded to the closest next GOP start.
PresentationWindowDuration Defines a sliding window at the live edge or end of the presentation. Media within this sliding window will be included in the playlist (manifest). Live, but also applies to VOD to enable smooth transitions when the presentation ends. The minimum presentation window duration is 120 seconds.
LiveBackoffDuration Applies a live presentation backoff, or delay, to the media. Live only, but silently ignored for VOD to enable smooth transitions when the presentation ends. The maximum live backoff duration is 60 seconds.
Timescale The timescale used by the timestamps and durations specified above. The default timescale is 10000000. Live and VOD Default is 10000000 (HNS)

Tracks:

Property Description Applies To Constraints
Type Type of the track. Values can be video, audio, or text. Live and VOD video, audio, or text
Name Name of the Track Live and VOD
Language Track language Live and VOD format specified in RFC 5646
FourCC Track FourCC value Live and VOD first element of codecs format specified in RFC 6381
Bitrate Bitrate of the track. Live and VOD Can be a range value or exact value

 

Note: Azure Media Services dynamic packager can source from multi-bitrate MP4 and Smooth Streaming files. Dynamic manifests(asset filters) uses Smooth Streaming server and client manifest data for filtering. Please also note that you should have at least one streaming unit to use this feature.

Sample Global filter REST request:




<updated>2015-04-03T20:50:34Z</updated>
<author><name /></author>
<content type="application/xml">

<m:properties><d:Name>MyGlobalFilter</d:Name>

<d:PresentationTimeRange>
<d:EndTimestamp m:type="Edm.Int64">9223372036854775807</d:EndTimestamp>
<d:LiveBackoffDuration m:type="Edm.Int64">0</d:LiveBackoffDuration>
<d:PresentationWindowDuration m:type="Edm.Int64">800000000</d:PresentationWindowDuration>
<d:StartTimestamp m:type="Edm.Int64">0</d:StartTimestamp>
<d:Timescale m:type="Edm.Int64">10000000</d:Timescale>
</d:PresentationTimeRange>

<d:Tracks /></m:properties>

</content>
</entry></pre>
<p><strong>Sample Local (Asset Level) filter REST request:</strong></p>
<pre class="prettyprint"><?xml version="1.0" encoding="utf-8"?>
<entry xmlns=https://www.w3.org/2005/Atom xmlns:d="" xmlns:m="/metadata" xmlns:georss="" xmlns:gml="https://www.opengis.net/gml">
<id /><title />
<updated>2015-04-03T20:53:34Z</updated>
<author><name /></author>
<content type="application/xml">
<m:properties><d:Id></d:Id>

<d:Name>MyLocalFilter</d:Name>

<d:ParentAssetId>nb:cid:UUID:fcef555d-1500-80c4-def5-f1e4d721ea68</d:ParentAssetId>

<d:PresentationTimeRange>

<d:EndTimestamp m:type="Edm.Int64">9223372036854775807</d:EndTimestamp>
<d:LiveBackoffDuration m:type="Edm.Int64">300000000</d:LiveBackoffDuration>
<d:PresentationWindowDuration m:type="Edm.Int64">3000000000</d:PresentationWindowDuration>
<d:StartTimestamp m:type="Edm.Int64">400000</d:StartTimestamp>
<d:Timescale m:type="Edm.Int64">10000000</d:Timescale>

</d:PresentationTimeRange>

<d:Tracks>

<d:element>

<d:PropertyConditions>

<d:element>

<d:Operator>Equal</d:Operator><d:Property>Type</d:Property><d:Value>audio</d:Value>

</d:element>

<d:element>

<d:Operator>Equal</d:Operator><d:Property>Language</d:Property><d:Value>en</d:Value>

</d:element>

</d:PropertyConditions>

</d:element>

<d:element>

<d:PropertyConditions>

<d:element>

<d:Operator>NotEqual</d:Operator><d:Property>Type</d:Property><d:Value>video</d:Value>

</d:element>

<d:element>

<d:Operator>Equal</d:Operator><d:Property>Bitrate</d:Property><d:Value>0-2427000</d:Value>

</d:element>

</d:PropertyConditions>

</d:element>

</d:Tracks>

</m:properties>

</content></entry>
</pre>
<pre class="prettyprint"></pre>
<p> </p>
<p>After a filter has been created you can start using it by adding the filter name to the URL request by adding a filter parameter to the manifest request as in the example below.</p>
<p><a href="(filter=MyLocalFilter)">(<span>filter=MyLocalFilter</span>)</a></p>
<p>Filters can also be used in combination with <a href="https://azure.microsoft.com/en-us/documentation/articles/media-services-dynamic-packaging-overview/" target="_blank" rel="noopener">dynamic packaging</a> and <a href="https://msdn.microsoft.com/en-us/library/azure/dn783457.aspx" target="_blank" rel="noopener">dynamic encryption</a>. As an example here is a request for the same stream as above but in HLS v4 format.</p>
<p><a href="(format=m3u8-aapl,filter=MyLocalFilter)">(format=m3u8-aapl,<span>filter=MyLocalFilter</span>)</a></p>
<blockquote><p><strong>Note:</strong> Global filters can be used with all your assets under the same media services account by just adding the filter name to the asset streaming URL. Local filters can only be used with the asset they are associated with. Please see local filter asset example. (“<span>ParentAssetId</span>”)</p></blockquote>
<h2>What happens behind the scenes?</h2>
<p>When a request which includes a filter is received by the streaming endpoint, the original playlist (manifest) is processed using the filter rules and a filtered playlist is served out in our response. If there are multiple filter rules then rule intersection defines the output. Presentation range (time) rules are executed at GOP (Group of picture- Key Frame) boundaries and rounded to the nearest next fragment.<br />
As an example;<br />
<img decoding="async" title="dynamic_manifest9" src="https://azurecomcdn.azureedge.net/mediahandler/acomblog/media/Default/blog/dynamic_manifest9.png" alt="dynamic_manifest9" width="640" height="327" /></p>
<p>Filters only apply to the playlist (manifest) requests and actual fragments are not processed, hence players can get benefit of already cached fragments in the proxies and CDNs.<br />
Below is an example showing the original playlist (manifest) and filtered one; after applying a presentation range filter.</p>
<p><a href="https://acom.azurecomcdn.net/80C57D/blogmedia/blogmedia/2015/05/26/dynamic_manifest10.png"><img decoding="async" title="dynamic_manifest10" src="https://azurecomcdn.azureedge.net/mediahandler/acomblog/media/Default/blog/dynamic_manifest10_thumb.png" alt="dynamic_manifest10" width="640" height="482" /></a></p>
<p>As you can see above the output manifest only includes the segments within the defined filter start and end times.</p>
<h2>Know issues and limitations</h2>
<ul>
<li>Dynamic manifest operates in GOP boundaries (Key Frames) hence trimming has GOP accuracy. If you want frame accurate sub-clipping you can use rendered sub-clips feature.</li>
<li>You can use same filter name for local and global filters. In this case local filter takes precedence and overrides global.</li>
<li>If you update a filter, it can take up to 2 minutes for streaming endpoint to refresh the rules. Also please keep in mind that updating a filter can result in player failures if the content is already served with the old filter and cached in proxies and CDN caches. It is recommend to purge the cache after updating the filter. If this option is not possible please consider using a different filter.</li>
<li>This release doesn’t support combining multiple filters in the URL. You can only apply one filter at a time.</li>
<li>You can set “EndTimestamp” rules for both on-demand and live playlists. However this rule is silently ignored when the presentation is live and takes presence when the live presentation transforms to on-demand.</li>
<li>You can set “PresentationWindowDuration” and “LiveBackoffDuration” rules to both on-demand and live presentations. However for on-demand presentations this rules are silently ignored.</li>
</ul>
<h2>Conclusion</h2>
<p>Dynamic manifest (asset filters) is a powerful new feature which helps you to reach multiple-end points without the hassle of post-production and having multiple copies of the same asset. It allows you create multiple renditions and views in seconds.</p>
<p>I hope you will enjoy this cool feature! For feature requests or to provide general feedback—we want to hear it all! Please use comments section below and I’ll respond as quickly as I can.</p>
			</div>

	
</article><!-- #post-8070 -->
					</div>
		</main>

	<aside class="single-layout__related">
		
<section data-bi-an="Related Articles">
	<div class="container px-0">
		<h2 class="font-weight-seminormal mb-3 mb-md-4">
			Related Posts		</h2>
		<ul class="mb-0 list-unstyled row row-cols-1 row-cols-md-3">
			<li class="col d-flex mb-3">
<article class="is-entire-card-clickable msx-card h-100 msx-card--vertical msx-card--solid msx-card--no-image" data-bi-an="Related posts">
	
	<div class="msx-card__body">
					<ul class="list-unstyled d-inline-flex list-bullet-inline align-items-center small msx-card__meta">
										<li class="m-0 d-inline-flex align-items-center" data-bi-cn="Database">
							<a href="https://azure.microsoft.com/ja-jp/blog/tag/database/">Database</a>
						</li>
														<li class="m-0 d-inline-flex align-items-center">
					Oct 29, 2019				</li>
				<li class="m-0 d-inline-flex align-items-center">
					1 min read				</li>
			</ul>
		
					<h3 class="msx-card__title">
				<a data-bi-cn="Enabling Diagnostic Logging in Azure API for FHIR®" data-bi-id="3330" data-bi-ct="title link" data-bi-tn="content-card" href="https://azure.microsoft.com/ja-jp/blog/enabling-diagnostic-logging-in-azure-api-for-fhir/">
					<span>Enabling Diagnostic Logging in Azure API for FHIR®</span> <span class="glyph glyph-append glyph-prepend-chevron-right" aria-hidden="true"></span>
			</a>
				</a>
			</h3>
		
					<div class="msx-card__byline small">
				<span>By</span>	<a class="msx-byline__author-link" href="https://azure.microsoft.com/ja-jp/blog/author/matjaz-ladava/" data-bi-cn="Matjaz Ladava" data-bi-ct="author link" data-bi-an="Single header">Matjaz Ladava</a>, Principal Program Manager			</div>
			
			</div>
</article>
</li><li class="col d-flex mb-3">
<article class="is-entire-card-clickable msx-card h-100 msx-card--vertical msx-card--solid msx-card--no-image" data-bi-an="Related posts">
	
	<div class="msx-card__body">
					<ul class="list-unstyled d-inline-flex list-bullet-inline align-items-center small msx-card__meta">
										<li class="m-0 d-inline-flex align-items-center" data-bi-cn="Government">
							<a href="https://azure.microsoft.com/ja-jp/blog/tag/government/">Government</a>
						</li>
														<li class="m-0 d-inline-flex align-items-center">
					Aug 22, 2019				</li>
				<li class="m-0 d-inline-flex align-items-center">
					6 min read				</li>
			</ul>
		
					<h3 class="msx-card__title">
				<a data-bi-cn="Azure におけるインフラから SAP アプリケーション レイヤーまでの IRAP Protected コンプライアンス" data-bi-id="3427" data-bi-ct="title link" data-bi-tn="content-card" href="https://azure.microsoft.com/ja-jp/blog/irap-protected-compliance-from-infra-to-sap-application-layer-on-azure/">
					<span>Azure におけるインフラから SAP アプリケーション レイヤーまでの IRAP Protected コンプライアンス</span> <span class="glyph glyph-append glyph-prepend-chevron-right" aria-hidden="true"></span>
			</a>
				</a>
			</h3>
		
					<div class="msx-card__byline small">
				<span>By</span>	<a class="msx-byline__author-link" href="https://azure.microsoft.com/ja-jp/blog/author/sachin-ghorpade/" data-bi-cn="Sachin Ghorpade" data-bi-ct="author link" data-bi-an="Single header">Sachin Ghorpade</a>, Senior Cloud Solution Architect			</div>
			
			</div>
</article>
</li><li class="col d-flex mb-3">
<article class="is-entire-card-clickable msx-card h-100 msx-card--vertical msx-card--solid msx-card--no-image" data-bi-an="Related posts">
	
	<div class="msx-card__body">
					<ul class="list-unstyled d-inline-flex list-bullet-inline align-items-center small msx-card__meta">
										<li class="m-0 d-inline-flex align-items-center" data-bi-cn="Big Data">
							<a href="https://azure.microsoft.com/ja-jp/blog/tag/big-data/">Big Data</a>
						</li>
														<li class="m-0 d-inline-flex align-items-center">
					Jul 18, 2019				</li>
				<li class="m-0 d-inline-flex align-items-center">
					3 min read				</li>
			</ul>
		
					<h3 class="msx-card__title">
				<a data-bi-cn="MileIQ and Azure Event Hubs: Billions of miles streamed" data-bi-id="3483" data-bi-ct="title link" data-bi-tn="content-card" href="https://azure.microsoft.com/ja-jp/blog/mileiq-and-azure-event-hubs-billions-of-miles-streamed/">
					<span>MileIQ and Azure Event Hubs: Billions of miles streamed</span> <span class="glyph glyph-append glyph-prepend-chevron-right" aria-hidden="true"></span>
			</a>
				</a>
			</h3>
		
					<div class="msx-card__byline small">
				<span>By</span>	<a class="msx-byline__author-link" href="https://azure.microsoft.com/ja-jp/blog/author/jamal-mohammed/" data-bi-cn="Jamal Mohammed" data-bi-ct="author link" data-bi-an="Single header">Jamal Mohammed</a>, Sr. Software Engineer, Mobile Data Labs			</div>
			
			</div>
</article>
</li>		</ul>
	</div>
</section>
	</aside>
		<div class="footer-prefix-container">
		
<section class="wp-block-group alignfull has-primary-brand-gradient-background has-background is-layout-constrained wp-block-group-is-layout-constrained">
<div class="wp-block-group is-layout-constrained wp-container-core-group-is-layout-2 wp-block-group-is-layout-constrained">
<h2 class="wp-block-heading has-text-align-center has-h-1-font-size" id="exploreazure-ai-solutions"><strong>Explore<br><span class="text-gradient">Azure AI solutions</span></strong></h2>



<div class="wp-block-group is-layout-constrained wp-container-core-group-is-layout-1 wp-block-group-is-layout-constrained">
<p class="has-text-align-center wp-block-paragraph">The future of AI starts here. Envision your next great AI app with the latest technologies. Get started with Azure.</p>



<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-1 wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link wp-element-button" href="https://azure.microsoft.com/ja-jp">Learn more about Azure</a></div>
</div>
</div>
</div>



<div class="wp-block-group is-layout-constrained wp-container-core-group-is-layout-5 wp-block-group-is-layout-constrained" style="padding-top:var(--wp--preset--spacing--2-xl)">
<div class="wp-block-group is-content-justification-center is-layout-flex wp-container-core-group-is-layout-4 wp-block-group-is-layout-flex">
<p class="has-text-align-center has-medium-font-size wp-block-paragraph">Connect with us on social</p>



<div class="wp-block-group is-content-justification-space-between is-nowrap is-layout-flex wp-container-core-group-is-layout-3 wp-block-group-is-layout-flex"><svg class="wp-block-tenup-icon" style="width: ; height: ;" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 25.07 25.41"><path fill="currentColor" d="M12.5 0A12.5 12.5 0 1 0 25 12.5C25 5.6 19.4 0 12.5 0M5.07 5.51h4.44l3.78 5.06 4.68-5.06h1.3l-5.4 5.84 6.1 8.14h-4.45L11.42 14l-5.08 5.5h-1.3l5.8-6.27zm1.92.96L16 18.53h2.04L9.03 6.47Z"/></svg>

<svg class="wp-block-tenup-icon" style="width: ; height: ;" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m4.441 16.892c-2.102.144-6.784.144-8.883 0C5.282 16.736 5.017 15.622 5 12c.017-3.629.285-4.736 2.558-4.892 2.099-.144 6.782-.144 8.883 0C18.718 7.264 18.982 8.378 19 12c-.018 3.629-.285 4.736-2.559 4.892M10 9.658l4.917 2.338L10 14.342z"/></svg>

<svg class="wp-block-tenup-icon" style="width: ; height: ;" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none"><path fill="currentColor" d="M19.927 20.283h-3.45v-5.535c0-1.305-.038-3.005-1.783-3.005-1.783 0-2.093 1.423-2.093 2.926v5.614h-3.45V8.936h3.295v1.542h.04a3.54 3.54 0 0 1 3.294-1.819c3.488 0 4.147 2.372 4.147 5.417zM5.237 7.393c-1.124 0-2.016-.909-2.016-2.055s.892-2.056 2.016-2.056 2.015.91 2.015 2.056-.891 2.056-2.015 2.056Zm1.744 12.89H3.493V8.936h3.45v11.347zM21.671 0H1.748C.818 0 .043.751.043 1.7v20.402c0 .95.775 1.74 1.705 1.7h19.885c.93 0 1.705-.75 1.744-1.7V1.7c0-.949-.775-1.7-1.706-1.7"/></svg>

<svg class="wp-block-tenup-icon" style="width: ; height: ;" xmlns="http://www.w3.org/2000/svg" width="23" height="22" fill="none" viewBox="0 0 23 22"><g fill="currentColor" clip-path="url(#a)"><path d="M11.497 2.581c2.81 0 3.142.011 4.251.062 1.026.046 1.583.218 1.954.362.458.168.872.437 1.211.787.35.34.62.754.788 1.211.144.371.315.928.362 1.954.05 1.11.061 1.442.061 4.252s-.01 3.142-.061 4.251c-.047 1.026-.218 1.583-.362 1.954a3.49 3.49 0 0 1-1.997 1.997c-.371.144-.928.315-1.954.362-1.11.05-1.442.061-4.252.061s-3.142-.01-4.251-.061c-1.026-.047-1.583-.218-1.954-.362a3.26 3.26 0 0 1-1.211-.788 3.26 3.26 0 0 1-.787-1.21c-.145-.372-.316-.929-.363-1.954-.05-1.11-.061-1.443-.061-4.252 0-2.81.01-3.142.061-4.252.047-1.026.218-1.583.363-1.954.168-.457.437-.871.787-1.21.34-.35.753-.62 1.211-.788.37-.144.928-.315 1.954-.362 1.11-.05 1.442-.061 4.251-.061zm.001-1.897c-2.857 0-3.215.012-4.338.063-1.122.052-1.886.23-2.555.491A5.2 5.2 0 0 0 2.74 2.451 5.2 5.2 0 0 0 1.53 4.315c-.262.67-.44 1.434-.491 2.554s-.064 1.48-.064 4.338.012 3.216.064 4.338c.051 1.122.229 1.884.489 2.554a5.2 5.2 0 0 0 1.213 1.863c.526.535 1.162.95 1.864 1.214.668.26 1.434.438 2.554.49 1.12.05 1.48.062 4.338.062s3.216-.012 4.338-.063c1.122-.05 1.884-.23 2.554-.489a5.38 5.38 0 0 0 3.077-3.077c.26-.668.438-1.434.489-2.554s.063-1.48.063-4.338-.012-3.216-.063-4.338c-.05-1.122-.23-1.885-.489-2.554a5.2 5.2 0 0 0-1.214-1.864 5.2 5.2 0 0 0-1.863-1.21C17.719.977 16.955.8 15.835.748s-1.48-.063-4.338-.063z"/><path d="M11.496 5.804a5.403 5.403 0 1 0 0 10.806 5.403 5.403 0 0 0 0-10.806m0 8.91a3.508 3.508 0 1 1 0-7.017 3.508 3.508 0 0 1 0 7.017M17.113 6.853a1.262 1.262 0 1 0 0-2.525 1.262 1.262 0 0 0 0 2.525"/></g><defs><clipPath id="a"><path fill="currentColor" d="M.975.644h21.05v21.09H.974z"/></clipPath></defs></svg></div>
</div>
</div>
</section>
	</div>
	<div id="footerArea" class="uhf"  data-m='{"cN":"footerArea","cT":"Area_coreuiArea","id":"a2Body","sN":2,"aN":"Body"}'>
                <div id="footerRegion"      data-region-key="footerregion" data-m='{"cN":"footerRegion","cT":"Region_coreui-region","id":"r1a2","sN":1,"aN":"a2"}' >

    <div  id="footerUniversalFooter" data-m='{"cN":"footerUniversalFooter","cT":"Module_coreui-universalfooter","id":"m1r1a2","sN":1,"aN":"r1a2"}'  data-module-id="Category|footerRegion|coreui-region|footerUniversalFooter|coreui-universalfooter">
        



<footer id="uhf-footer" class="c-uhff context-uhf"  data-uhf-mscc-rq="false" data-footer-footprint="/MSCloudBlogs/MSCloudBlogsfooter, fromService: True" data-m='{"cN":"Uhf footer_cont","cT":"Container","id":"c1m1r1a2","sN":1,"aN":"m1r1a2"}'>
        <nav class="c-uhff-nav" aria-label="フッター リソースのリンク" data-m='{"cN":"Footer nav_cont","cT":"Container","id":"c1c1m1r1a2","sN":1,"aN":"c1m1r1a2"}'>
            
                <div class="c-uhff-nav-row">
                    <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn1_cont","cT":"Container","id":"c1c1c1m1r1a2","sN":1,"aN":"c1c1m1r1a2"}'>
                        <div class="c-heading-4" role="heading" aria-level="2">最新情報</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="Surface Pro 最新情報" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/surface/devices/surface-pro-11th-edition" data-m='{"cN":"Footer_WhatsNew_NewSurfacePro_nav","id":"n1c1c1c1m1r1a2","sN":1,"aN":"c1c1c1m1r1a2"}'>Surface Pro</a>
                            </li>
                            <li>
                                <a aria-label="Surface Laptop 最新情報" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/surface/devices/surface-laptop-7th-edition" data-m='{"cN":"Footer_WhatsNew_SurfaceLaptop_nav","id":"n2c1c1c1m1r1a2","sN":2,"aN":"c1c1c1m1r1a2"}'>Surface Laptop</a>
                            </li>
                            <li>
                                <a aria-label="Surface Laptop Studio 2 最新情報" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/d/Surface-Laptop-Studio-2/8rqr54krf1dz" data-m='{"cN":"Footer_WhatsNew_SurfaceLaptopStudio2_nav","id":"n3c1c1c1m1r1a2","sN":3,"aN":"c1c1c1m1r1a2"}'>Surface Laptop Studio 2</a>
                            </li>
                            <li>
                                <a aria-label="Surface Laptop Go 3 最新情報" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/d/Surface-Laptop-Go-3/8p0wwgj6c6l2" data-m='{"cN":"Footer_WhatsNew_SurfaceLaptopGo3_nav","id":"n4c1c1c1m1r1a2","sN":4,"aN":"c1c1c1m1r1a2"}'>Surface Laptop Go 3</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Copilot 最新情報" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/microsoft-copilot" data-m='{"cN":"Footer_WhatsNew_CopilotMicrosoft_nav","id":"n5c1c1c1m1r1a2","sN":5,"aN":"c1c1c1m1r1a2"}'>Microsoft Copilot</a>
                            </li>
                            <li>
                                <a aria-label="Windows での AI 最新情報" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/windows/copilot-ai-features" data-m='{"cN":"Whatsnew_AIinWindows_nav","id":"n6c1c1c1m1r1a2","sN":6,"aN":"c1c1c1m1r1a2"}'>Windows での AI</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft 365 最新情報" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/microsoft-365" data-m='{"cN":"Footer_WhatsNew_Microsoft365_nav","id":"n7c1c1c1m1r1a2","sN":7,"aN":"c1c1c1m1r1a2"}'>Microsoft 365</a>
                            </li>
                            <li>
                                <a aria-label="Windows 11 アプリ 最新情報" class="c-uhff-link" href="https://www.microsoft.com/windows/windows-11-apps" data-m='{"cN":"Footer_WhatsNew_Windows_11_apps_nav","id":"n8c1c1c1m1r1a2","sN":8,"aN":"c1c1c1m1r1a2"}'>Windows 11 アプリ</a>
                            </li>

                        </ul>
                        
                    </div>
                    <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn2_cont","cT":"Container","id":"c2c1c1m1r1a2","sN":2,"aN":"c1c1m1r1a2"}'>
                        <div class="c-heading-4" role="heading" aria-level="2">Microsoft Store
</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="アカウント プロファイル Microsoft Store
" class="c-uhff-link" href="https://account.microsoft.com/" data-m='{"cN":"Footer_StoreandSupport_AccountProfile_nav","id":"n1c2c1c1m1r1a2","sN":1,"aN":"c2c1c1m1r1a2"}'>アカウント プロファイル</a>
                            </li>
                            <li>
                                <a aria-label="ダウンロード センター Microsoft Store
" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/download" data-m='{"cN":"Footer_StoreandSupport_DownloadCenter_nav","id":"n2c2c1c1m1r1a2","sN":2,"aN":"c2c1c1m1r1a2"}'>ダウンロード センター</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Store サポート Microsoft Store
" class="c-uhff-link" href="https://go.microsoft.com/fwlink/?linkid=2139749" data-m='{"cN":"Footer_StoreandSupport_SalesAndSupport_nav","id":"n3c2c1c1m1r1a2","sN":3,"aN":"c2c1c1m1r1a2"}'>Microsoft Store サポート</a>
                            </li>
                            <li>
                                <a aria-label="返品・返金 Microsoft Store
" class="c-uhff-link" href="https://support.microsoft.com/ja-jp/account-billing/microsoft-store-%E3%81%8B%E3%82%89%E8%B3%BC%E5%85%A5%E3%81%97%E3%81%9F%E5%95%86%E5%93%81%E3%82%92%E8%BF%94%E5%93%81%E3%81%97%E3%81%A6%E4%BA%A4%E6%8F%9B%E3%81%BE%E3%81%9F%E3%81%AF%E6%89%95%E3%81%84%E6%88%BB%E3%81%97%E3%82%92%E5%8F%97%E3%81%91%E3%82%8B-81629012-aa4f-f48b-2394-8596f415072b" data-m='{"cN":"Footer_StoreandSupport_Returns_nav","id":"n4c2c1c1m1r1a2","sN":4,"aN":"c2c1c1m1r1a2"}'>返品・返金</a>
                            </li>
                            <li>
                                <a aria-label="ご注文履歴 Microsoft Store
" class="c-uhff-link" href="https://account.microsoft.com/orders" data-m='{"cN":"Footer_StoreandSupport_OrderTracking_nav","id":"n5c2c1c1m1r1a2","sN":5,"aN":"c2c1c1m1r1a2"}'>ご注文履歴</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Store をお選びいただく理由 Microsoft Store
" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/store/b/why-microsoft-store?icid=footer_why-msft-store_7102020" data-m='{"cN":"Footer_StoreandSupport_MicrosoftPromise_nav","id":"n6c2c1c1m1r1a2","sN":6,"aN":"c2c1c1m1r1a2"}'>Microsoft Store をお選びいただく理由</a>
                            </li>

                        </ul>
                        
                    </div>
                    <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn3_cont","cT":"Container","id":"c3c1c1m1r1a2","sN":3,"aN":"c1c1m1r1a2"}'>
                        <div class="c-heading-4" role="heading" aria-level="2">教育</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="Microsoft Education 教育" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/education" data-m='{"cN":"Footer_Education_MicrosoftInEducation_nav","id":"n1c3c1c1m1r1a2","sN":1,"aN":"c3c1c1m1r1a2"}'>Microsoft Education</a>
                            </li>
                            <li>
                                <a aria-label="教育機関向けデバイス 教育" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/education/devices/overview" data-m='{"cN":"Footer_Education_DevicesforEducation_nav","id":"n2c3c1c1m1r1a2","sN":2,"aN":"c3c1c1m1r1a2"}'>教育機関向けデバイス</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Teams for Education 教育" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/education/products/teams" data-m='{"cN":"Footer_Education_MicrosoftTeamsforEducation_nav","id":"n3c3c1c1m1r1a2","sN":3,"aN":"c3c1c1m1r1a2"}'>Microsoft Teams for Education</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft 365 Education 教育" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/education/buy-license/microsoft365" data-m='{"cN":"Footer_Education_Microsoft365Education_nav","id":"n4c3c1c1m1r1a2","sN":4,"aN":"c3c1c1m1r1a2"}'>Microsoft 365 Education</a>
                            </li>
                            <li>
                                <a aria-label="Office Education 教育" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/education/products/office" data-m='{"cN":"Footer_Education_Office Education_nav","id":"n5c3c1c1m1r1a2","sN":5,"aN":"c3c1c1m1r1a2"}'>Office Education</a>
                            </li>
                            <li>
                                <a aria-label="教育者向けトレーニングおよび開発 教育" class="c-uhff-link" href="https://education.microsoft.com/" data-m='{"cN":"Footer_Education_EducatorTrainingDevelopment_nav","id":"n6c3c1c1m1r1a2","sN":6,"aN":"c3c1c1m1r1a2"}'>教育者向けトレーニングおよび開発</a>
                            </li>
                            <li>
                                <a aria-label="学生および保護者向けキャンペーン 教育" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/store/b/student" data-m='{"cN":"Footer_Education_DealsForStudentsandParents_nav","id":"n7c3c1c1m1r1a2","sN":7,"aN":"c3c1c1m1r1a2"}'>学生および保護者向けキャンペーン</a>
                            </li>
                            <li>
                                <a aria-label="学生向け Azure 教育" class="c-uhff-link" href="https://azure.microsoft.com/ja-jp/free/students/" data-m='{"cN":"Footer_Education_Azureforstudents_nav","id":"n8c3c1c1m1r1a2","sN":8,"aN":"c3c1c1m1r1a2"}'>学生向け Azure</a>
                            </li>

                        </ul>
                        
                    </div>
                </div>
                <div class="c-uhff-nav-row">
                    <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn4_cont","cT":"Container","id":"c4c1c1m1r1a2","sN":4,"aN":"c1c1m1r1a2"}'>
                        <div class="c-heading-4" role="heading" aria-level="2">ビジネス</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="Microsoft Cloud ビジネス" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/microsoft-cloud" data-m='{"cN":"Footer_Business_Microsoft_Cloud_nav","id":"n1c4c1c1m1r1a2","sN":1,"aN":"c4c1c1m1r1a2"}'>Microsoft Cloud</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Security ビジネス" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/security" data-m='{"cN":"Footer_Business_Microsoft Security_nav","id":"n2c4c1c1m1r1a2","sN":2,"aN":"c4c1c1m1r1a2"}'>Microsoft Security</a>
                            </li>
                            <li>
                                <a aria-label="Azure ビジネス" class="c-uhff-link" href="https://azure.microsoft.com/ja-jp/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftAzure_nav","id":"n3c4c1c1m1r1a2","sN":3,"aN":"c4c1c1m1r1a2"}'>Azure</a>
                            </li>
                            <li>
                                <a aria-label="Dynamics 365 ビジネス" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/dynamics-365" data-m='{"cN":"Footer_Business_MicrosoftDynamics365_nav","id":"n4c4c1c1m1r1a2","sN":4,"aN":"c4c1c1m1r1a2"}'>Dynamics 365</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft 365 ビジネス" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/microsoft-365/business" data-m='{"cN":"Footer_Business_M365_nav","id":"n5c4c1c1m1r1a2","sN":5,"aN":"c4c1c1m1r1a2"}'>Microsoft 365</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Advertising ビジネス" class="c-uhff-link" href="https://about.ads.microsoft.com" data-m='{"cN":"Footer_MicrosoftAdvertising_nav","id":"n6c4c1c1m1r1a2","sN":6,"aN":"c4c1c1m1r1a2"}'>Microsoft Advertising</a>
                            </li>
                            <li>
                                <a aria-label="Copilot for Microsoft 365 ビジネス" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/microsoft-365/business/copilot-for-microsoft-365" data-m='{"cN":"Footer_CopilotMicrosoft365_nav","id":"n7c4c1c1m1r1a2","sN":7,"aN":"c4c1c1m1r1a2"}'>Copilot for Microsoft 365</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Teams ビジネス" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/microsoft-teams/group-chat-software" data-m='{"cN":"Footer_Business_Microsoft365_nav","id":"n8c4c1c1m1r1a2","sN":8,"aN":"c4c1c1m1r1a2"}'>Microsoft Teams</a>
                            </li>

                        </ul>
                        
                    </div>
                    <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn5_cont","cT":"Container","id":"c5c1c1m1r1a2","sN":5,"aN":"c1c1m1r1a2"}'>
                        <div class="c-heading-4" role="heading" aria-level="2">開発者 & IT</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="デベロッパー センター 開発者 & IT" class="c-uhff-link" href="https://developer.microsoft.com/ja-jp/" data-m='{"cN":"Footer_DeveloperAndIT_DeveloperCenter_nav","id":"n1c5c1c1m1r1a2","sN":1,"aN":"c5c1c1m1r1a2"}'>デベロッパー センター</a>
                            </li>
                            <li>
                                <a aria-label="ドキュメント 開発者 & IT" class="c-uhff-link" href="https://learn.microsoft.com/docs/" data-m='{"cN":"Footer_DeveloperAndIT_Documentation_nav","id":"n2c5c1c1m1r1a2","sN":2,"aN":"c5c1c1m1r1a2"}'>ドキュメント</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Learn 開発者 & IT" class="c-uhff-link" href="https://learn.microsoft.com/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftLearn_nav","id":"n3c5c1c1m1r1a2","sN":3,"aN":"c5c1c1m1r1a2"}'>Microsoft Learn</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Tech Community 開発者 & IT" class="c-uhff-link" href="https://techcommunity.microsoft.com/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftTechCommunity_nav","id":"n4c5c1c1m1r1a2","sN":4,"aN":"c5c1c1m1r1a2"}'>Microsoft Tech Community</a>
                            </li>
                            <li>
                                <a aria-label="Azure Marketplace 開発者 & IT" class="c-uhff-link" href="https://azuremarketplace.microsoft.com/ja-jp/" data-m='{"cN":"Footer_DeveloperAndIT_AzureMarketplace_nav","id":"n5c5c1c1m1r1a2","sN":5,"aN":"c5c1c1m1r1a2"}'>Azure Marketplace</a>
                            </li>
                            <li>
                                <a aria-label="AppSource 開発者 & IT" class="c-uhff-link" href="https://appsource.microsoft.com/ja-jp/" data-m='{"cN":"Footer_DeveloperAndIT_AppSource_nav","id":"n6c5c1c1m1r1a2","sN":6,"aN":"c5c1c1m1r1a2"}'>AppSource</a>
                            </li>
                            <li>
                                <a aria-label="Microsoft Power Platform 開発者 & IT" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/power-platform" data-m='{"cN":"Footer_DeveloperAndIT_Power Platform_nav","id":"n7c5c1c1m1r1a2","sN":7,"aN":"c5c1c1m1r1a2"}'>Microsoft Power Platform</a>
                            </li>
                            <li>
                                <a aria-label="Visual Studio 開発者 & IT" class="c-uhff-link" href="https://visualstudio.microsoft.com/" data-m='{"cN":"Footer_DeveloperAndIT_MicrosoftVisualStudio_nav","id":"n8c5c1c1m1r1a2","sN":8,"aN":"c5c1c1m1r1a2"}'>Visual Studio</a>
                            </li>

                        </ul>
                        
                    </div>
                    <div class="c-uhff-nav-group" data-m='{"cN":"footerNavColumn6_cont","cT":"Container","id":"c6c1c1m1r1a2","sN":6,"aN":"c1c1m1r1a2"}'>
                        <div class="c-heading-4" role="heading" aria-level="2">会社
</div>
                        <ul class="c-list f-bare">
                            <li>
                                <a aria-label="採用情報 会社
" class="c-uhff-link" href="https://careers.microsoft.com/" data-m='{"cN":"Footer_Company_Careers_nav","id":"n1c6c1c1m1r1a2","sN":1,"aN":"c6c1c1m1r1a2"}'>採用情報</a>
                            </li>
                            <li>
                                <a aria-label="会社のニュース 会社
" class="c-uhff-link" href="https://news.microsoft.com/ja-jp" data-m='{"cN":"Footer_Company_CompanyNews_nav","id":"n2c6c1c1m1r1a2","sN":2,"aN":"c6c1c1m1r1a2"}'>会社のニュース</a>
                            </li>
                            <li>
                                <a aria-label="マイクロソフトにおけるプライバシー 会社
" class="c-uhff-link" href="https://privacy.microsoft.com/ja-jp" data-m='{"cN":"Footer_Company_PrivacyAtMicrosoft_nav","id":"n3c6c1c1m1r1a2","sN":3,"aN":"c6c1c1m1r1a2"}'>マイクロソフトにおけるプライバシー</a>
                            </li>
                            <li>
                                <a aria-label="投資家 会社
" class="c-uhff-link" href="https://www.microsoft.com/investor/default.aspx" data-m='{"cN":"Footer_Company_Investors_nav","id":"n4c6c1c1m1r1a2","sN":4,"aN":"c6c1c1m1r1a2"}'>投資家</a>
                            </li>
                            <li>
                                <a aria-label="アクセシビリティ 会社
" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/enable/" data-m='{"cN":"Footer_Company_Accessibility_nav","id":"n5c6c1c1m1r1a2","sN":5,"aN":"c6c1c1m1r1a2"}'>アクセシビリティ</a>
                            </li>
                            <li>
                                <a aria-label="持続可能性 会社
" class="c-uhff-link" href="https://www.microsoft.com/ja-jp/sustainability/" data-m='{"cN":"Footer_Company_Sustainability_nav","id":"n6c6c1c1m1r1a2","sN":6,"aN":"c6c1c1m1r1a2"}'>持続可能性</a>
                            </li>

                        </ul>
                        
                    </div>
                </div>
        </nav>
    <div class="c-uhff-base">
                <a id="locale-picker-link" aria-label="コンテンツ言語の選択。現在は 日本語 (日本) に設定されています" class="c-uhff-link c-uhff-lang-selector c-glyph glyph-world" href="http://www.microsoft.com/en-us/locale.aspx" data-m='{"cN":"locale_picker(JP)_nav","id":"n7c1c1m1r1a2","sN":7,"aN":"c1c1m1r1a2"}'>日本語 (日本)</a>

            <a data-m='{"id":"n8c1c1m1r1a2","sN":8,"aN":"c1c1m1r1a2"}' href="https://aka.ms/yourcaliforniaprivacychoices" class='c-uhff-link c-uhff-ccpa'>
        <svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14" xml:space="preserve" height="16" width="43">
            <title>プライバシーに関する選択のオプトアウト アイコン
            
            
            
            
        
        プライバシーに関する選択
    

        
            
        コンシューマーの正常性のプライバシー