{"id":21907,"date":"2019-07-10T15:12:32","date_gmt":"2019-07-10T15:12:32","guid":{"rendered":"http:\/\/automatically_crop_videos_without_losing_focus"},"modified":"2025-02-16T13:33:18","modified_gmt":"2025-02-16T21:33:18","slug":"automatically_crop_videos_without_losing_focus","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus","title":{"rendered":"Automatically Crop Videos Without Losing Focus"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>Delivering videos according to the aspect ratios defined by social media for multiple devices and platforms is a growing challenge. The continuously rising volume of vertical videos and the corresponding increase in <a href=\"https:\/\/cloudinary.com\/video_api\">video<\/a> traffic on mobile devices (now up to 57% of online videos watched) have only exacerbated the situation, with no letup in sight.<\/p>\n<p>Reality is, smartphone users hold their phone vertically while scrolling or browsing online content, including videos that are not optimized for mobile devices. It simply doesn\u2019t occur to those users to switch to horizontal mode for an enhanced view, or it doesn\u2019t feel worth their effort. This means that providers of online content must make sure their videos accommodate all viewing devices, ideally through automation.<\/p>\n<p>Cloudinary, which for years has been performing automated cropping of images for size economy and compliance with aspect ratios, can now do the same for videos, adding to its already powerful video solution. Impressively, Cloudinary\u2019s <a href=\"https:\/\/cloudinary.com\/documentation\/video_manipulation_and_delivery#automatic_cropping\">content-aware cropping<\/a> capability identifies the must-keep sections by analyzing videos through advanced AI and machine-learning techniques, churning out intelligently downsized videos in any aspect ratio. It\u2019s as simple as setting the crop mode to <code>fill<\/code> and the gravity to <code>auto<\/code>.<\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.video(\\&quot;ship\\&quot;, {width: 300, gravity: \\&quot;auto\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.video(\\&quot;ship\\&quot;, {width: 300, gravity: \\&quot;auto\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, crop: \\&quot;fill\\&quot;})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Video publicId=\\&quot;ship\\&quot; &gt; &lt;Transformation width=\\&quot;300\\&quot; gravity=\\&quot;auto\\&quot; aspectRatio=\\&quot;1:1\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/Video&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Video publicId=\\&quot;ship\\&quot; &gt;\\n\\t&lt;Transformation width=\\&quot;300\\&quot; gravity=\\&quot;auto\\&quot; aspectRatio=\\&quot;1:1\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt;\\n&lt;\\\/Video&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-video public-id=\\&quot;ship\\&quot; &gt; &lt;cld-transformation width=\\&quot;300\\&quot; gravity=\\&quot;auto\\&quot; aspect-ratio=\\&quot;1:1\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt; &lt;\\\/cld-video&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-video public-id=\\&quot;ship\\&quot; &gt;\\n\\t&lt;cld-transformation width=\\&quot;300\\&quot; gravity=\\&quot;auto\\&quot; aspect-ratio=\\&quot;1:1\\&quot; crop=\\&quot;fill\\&quot; \\\/&gt;\\n&lt;\\\/cld-video&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-video public-id=\\&quot;ship\\&quot; &gt; &lt;cl-transformation width=\\&quot;300\\&quot; gravity=\\&quot;auto\\&quot; aspect-ratio=\\&quot;1:1\\&quot; crop=\\&quot;fill\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-video&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-video public-id=\\&quot;ship\\&quot; &gt;\\n\\t&lt;cl-transformation width=\\&quot;300\\&quot; gravity=\\&quot;auto\\&quot; aspect-ratio=\\&quot;1:1\\&quot; crop=\\&quot;fill\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-video&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.videoTag(&#039;ship&#039;, {width: 300, gravity: \\&quot;auto\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, crop: \\&quot;fill\\&quot;}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.videoTag(&#039;ship&#039;, {width: 300, gravity: \\&quot;auto\\&quot;, aspectRatio: \\&quot;1:1\\&quot;, crop: \\&quot;fill\\&quot;}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryVideo(\\&quot;ship\\&quot;).video(width=300, gravity=\\&quot;auto\\&quot;, aspect_ratio=\\&quot;1:1\\&quot;, crop=\\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryVideo(\\&quot;ship\\&quot;).video(width=300, gravity=\\&quot;auto\\&quot;, aspect_ratio=\\&quot;1:1\\&quot;, crop=\\&quot;fill\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new VideoTag(&#039;ship.mp4&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(300)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::autoGravity())\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new VideoTag(&#039;ship.mp4&#039;))\\n\\t-&gt;resize(Resize::fill()-&gt;width(300)\\n\\t-&gt;aspectRatio(\\n\\tAspectRatio::ar1X1())\\n\\t-&gt;gravity(\\n\\tGravity::autoGravity())\\n\\t);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_video_tag(\\&quot;ship\\&quot;, array(\\&quot;width\\&quot;=&gt;300, \\&quot;gravity\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;))&quot;,&quot;codeSnippet&quot;:&quot;cl_video_tag(\\&quot;ship\\&quot;, array(\\&quot;width\\&quot;=&gt;300, \\&quot;gravity\\&quot;=&gt;\\&quot;auto\\&quot;, \\&quot;aspect_ratio\\&quot;=&gt;\\&quot;1:1\\&quot;, \\&quot;crop\\&quot;=&gt;\\&quot;fill\\&quot;))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().width(300).gravity(\\&quot;auto\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).crop(\\&quot;fill\\&quot;)).videoTag(\\&quot;ship\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().width(300).gravity(\\&quot;auto\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).crop(\\&quot;fill\\&quot;)).videoTag(\\&quot;ship\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_video_tag(\\&quot;ship\\&quot;, width: 300, gravity: \\&quot;auto\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, crop: \\&quot;fill\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cl_video_tag(\\&quot;ship\\&quot;, width: 300, gravity: \\&quot;auto\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, crop: \\&quot;fill\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlVideoUp.Transform(new Transformation().Width(300).Gravity(\\&quot;auto\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Crop(\\&quot;fill\\&quot;)).BuildVideoTag(\\&quot;ship\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlVideoUp.Transform(new Transformation().Width(300).Gravity(\\&quot;auto\\&quot;).AspectRatio(\\&quot;1:1\\&quot;).Crop(\\&quot;fill\\&quot;)).BuildVideoTag(\\&quot;ship\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;dart&quot;,&quot;framework&quot;:&quot;dart&quot;,&quot;language&quot;:&quot;dart&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.video(&#039;ship.mp4&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(300)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.autoGravity())\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.video(&#039;ship.mp4&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(300)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.autoGravity())\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.createUrl().setResourceType(\\&quot;video\\&quot;).setTransformation(CLDTransformation().setWidth(300).setGravity(\\&quot;auto\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;ship.mp4\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.createUrl().setResourceType(\\&quot;video\\&quot;).setTransformation(CLDTransformation().setWidth(300).setGravity(\\&quot;auto\\&quot;).setAspectRatio(\\&quot;1:1\\&quot;).setCrop(\\&quot;fill\\&quot;)).generate(\\&quot;ship.mp4\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().width(300).gravity(\\&quot;auto\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).crop(\\&quot;fill\\&quot;)).resourceType(\\&quot;video\\&quot;).generate(\\&quot;ship.mp4\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().width(300).gravity(\\&quot;auto\\&quot;).aspectRatio(\\&quot;1:1\\&quot;).crop(\\&quot;fill\\&quot;)).resourceType(\\&quot;video\\&quot;).generate(\\&quot;ship.mp4\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Android&quot;,&quot;packageName&quot;:&quot;cloudinary-android&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;flutter&quot;,&quot;framework&quot;:&quot;flutter&quot;,&quot;language&quot;:&quot;flutter&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.video(&#039;ship.mp4&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(300)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.autoGravity())\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.video(&#039;ship.mp4&#039;).transformation(Transformation()\\n\\t.resize(Resize.fill().width(300)\\n\\t.aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t.gravity(\\n\\tGravity.autoGravity())\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.video {\\n\\tpublicId(\\&quot;ship.mp4\\&quot;)\\n\\t resize(Resize.fill() { width(300)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.autoGravity())\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.video {\\n\\tpublicId(\\&quot;ship.mp4\\&quot;)\\n\\t resize(Resize.fill() { width(300)\\n\\t aspectRatio(\\n\\tAspectRatio.ar1X1())\\n\\t gravity(\\n\\tGravity.autoGravity())\\n\\t }) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.video(\\&quot;ship\\&quot;, {width: 300, gravity: \\&quot;auto\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, crop: \\&quot;fill\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.video(\\&quot;ship\\&quot;, {width: 300, gravity: \\&quot;auto\\&quot;, aspect_ratio: \\&quot;1:1\\&quot;, crop: \\&quot;fill\\&quot;})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryVideo(\\&quot;ship.mp4\\&quot;).resize(\\n  fill()\\n    .width(300)\\n    .aspectRatio(ar1X1())\\n    .gravity(autoGravity())\\n);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/video\\\/upload\\\/w_300,c_fill,g_auto,ar_1:1\\\/ship.mp4&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;video&quot;,&quot;transformation&quot;:[{&quot;width&quot;:&quot;300&quot;,&quot;crop_mode&quot;:&quot;fill&quot;,&quot;gravity&quot;:&quot;auto&quot;,&quot;aspect_ratio&quot;:&quot;1:1&quot;}],&quot;transformation_string&quot;:&quot;w_300,c_fill,g_auto,ar_1:1&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;ship.mp4&quot;,&quot;extension&quot;:&quot;mp4&quot;,&quot;format&quot;:&quot;mp4&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;video&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><video\n      controls\n      muted\n      preload=\"none\"\n      class=\"c-transformed-asset c-transformed-asset--video\"\n      poster=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/w_300,c_fill,g_auto,ar_1:1\/ship.jpg\"\n      \n    >\n      <source src=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/w_300,c_fill,g_auto,ar_1:1\/vc_h265\/ship.mp4\" type=\"video\/mp4; codecs=hevc\">\n<source src=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/w_300,c_fill,g_auto,ar_1:1\/vc_vp9\/ship.webm\" type=\"video\/webm; codecs=vp9\">\n<source src=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/w_300,c_fill,g_auto,ar_1:1\/vc_auto\/ship.mp4\" type=\"video\/mp4\">\n<source src=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/w_300,c_fill,g_auto,ar_1:1\/vc_auto\/ship.webm\" type=\"video\/webm\">\n    <\/video><\/p>\n<p>\nWhile there are several emerging tools and services, such as CognitiveMill, which claim to offer similar automated cropping, they often rely on simple scene-by-scene visual analysis. In contrast, Cloudinary&#8217;s advanced AI and machine-learning techniques provide more accurate and intelligent content-aware cropping. There are also other tools like Canva, PowerDirector, Flixier, and Kapwing. However, what sets Cloudinary apart is not only its robust AI-backed capabilities but its comprehensive video solution that caters to multiple aspect ratios and platforms, making it a preferred choice for content providers. \n<\/p>\n<h2>Rotate or Move On: The Challenge with Video on Mobile<\/h2>\n<p>Nearly half of all smartphone users watch short-form videos or live posts at least once a week. Because most people hold their phones vertically for comfort, yet videos are best viewed horizontally, many folks shy away from the trouble of rotating their phone and waiting for the video to update. The solution? Have videos play with the correct <a href=\"https:\/\/cloudinary.com\/glossary\/video-aspect-ratio\">aspect ratio<\/a>, eliminating the rotation step and avoiding accidental dropping of the phone.<\/p>\n<p>Additionally, given the monumental role of social media in video consumption, you must deliver videos on those platforms across all devices. The chart below showing the various aspect ratios required for optimally delivering videos for Facebook and Instagram, clearly demonstrates the challenge, especially if large quantities of videos are involved.<\/p>\n<p><video controls=\"controls\" height=\"100%\" poster=\"https:\/\/cloudinary-res.cloudinary.com\/video\/upload\/w_700,c_fill,f_auto,q_auto,dpr_2.0\/Aspect_Ratios_v1.jpg\" src=\"https:\/\/cloudinary-res.cloudinary.com\/video\/upload\/w_700,c_fill,f_auto,q_auto,dpr_2.0\/Aspect_Ratios_v1.mp4\" preload=\"none\" style=\"margin: 0 auto\" width=\"1728\"><\/video><\/p>\n<h2>Introducing Automatic Content-Aware Cropping<\/h2>\n<p>You can now automate all your video cropping with Cloudinary\u2019s automatic content-aware automatic cropping functionality. No more time consuming manual editing. Cloudinary has developed a complex deep-learning algorithm that analyzes frames from the video and identifies where the most interesting areas are. From this analysis, a heatmap is produced and then used to crop the video intelligently.<\/p>\n<p><video controls=\"controls\" height=\"100%\" poster=\"https:\/\/cloudinary-res.cloudinary.com\/video\/upload\/Auto_Content_Aware_Cropping_v2.jpg\" src=\"https:\/\/cloudinary-res.cloudinary.com\/video\/upload\/Auto_Content_Aware_Cropping_v2.mp4\" preload=\"none\" style=\"margin: 0 auto\" width=\"1728\"><\/video><\/p>\n<p>The cropped video will now follow the most interesting area of the video throughout the duration, ensuring that your videos retain all the important features you wanted when you filmed them, while filling the screen no matter the aspect ratio.<\/p>\n<p>As we mentioned above, all you need to do is set the crop mode to <code>fill<\/code> and the gravity to <code>auto<\/code>. This will begin the process of analysing the video. We recommend performing this on upload as an <a href=\"https:\/\/cloudinary.com\/documentation\/transformations_on_upload#eager_transformations\">eager<\/a> transformation to ensure the analysis is complete before delivery (or alternatively using the <a href=\"https:\/\/cloudinary.com\/documentation\/image_upload_api_reference#explicit_method\">explict<\/a> method before delivery on a video already in your account). Once that analysis has been performed on a specific video in your account, you can deliver your content-aware video in any aspect ratio you need; Landscape, Square, Facebook Vertical, Instagram Story Vertical.<\/p>\n<h2>Automatic Cropping Versus Default Cropping<\/h2>\n<p>Let\u2019s take a look at how content-aware automatic cropping compares with the standard center crop. Notice how the default crop only has the dog in shot for a short period of time when he passes through the center of the frame. With automatic cropping, this impressive frisbie catch stays in shot throughout the video, despite starting on one side of the frame and finishing on the other.<\/p>\n<p><strong>Click any video to see the comparison in action.<\/strong><\/p>\n<div style=\"clear: both;margin-bottom: 20px\"><\/div>\n<div style=\"text-align:center\">\n  <video class=\"simultaneous-dog\" playsinline poster=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/so_1\/dog_orig_qflwce.jpg\" src=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/so_1\/dog_orig_qflwce.mp4\" style=\"margin-right: 10px\" controls><\/video>\n<b style=\"margin-right: 10px\">Original video<\/b>\n<\/div>\n<div style=\"text-align:center\">\n<video class=\"simultaneous-dog\" playsinline poster=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/h_300,w_183,c_fill,so_1\/dog_orig_qflwce.jpg\" src=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/h_300,w_183,c_fill,so_1\/dog_orig_qflwce.mp4\" style=\"margin-right: 10px\" controls><\/video>\n<br\/>\n<b style=\"margin-right: 10px\">Default crop<br \/>(Center gravity)<\/b>\n<br\/>\n<br\/>\n<span style=\"text-align:center\">\n<video class=\"simultaneous-dog\" playsinline poster=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/h_300,w_183,c_fill,so_1\/dog_orig_qflwce.jpg\" src=\"https:\/\/res.cloudinary.com\/demo\/video\/upload\/h_300,w_183,c_fill,g_auto\/dog_orig_qflwce.mp4\" style=\"margin-right: 10px\" controls><\/video>\n<br\/>\n<b style=\"margin-right: 10px\">Automatic crop<\/b>\n<\/span>\n<\/div>\n<script>\nfunction toggleVideos() {\n  const videosRefs = document.querySelectorAll(\".simultaneous-dog\");\n  videosRefs.forEach(video =&gt; {\n    if (video.paused) {\n      video.play();\n    } else {\n      video.pause();\n    }\n  });\n}\n<\/script>\n<h2>Taking it Further<\/h2>\n<p>We could use this new functionality to extend the existing mobile video experience and actually serve up a landscape or vertical video depending on the orientation of the device. If the user lands on your page whilst browsing in portrait orientation we can set our HTML5 video source to our vertically cropped video. If they then decide to switch to landscape then we change the source to the original landscape video. Full screen video for both orientations.<\/p>\n<p>See the Pen <a href=\"https:\/\/codepen.io\/team\/Cloudinary\/pen\/bPvBVV\">\nOrientation switch demo<\/a> by Cloudinary (<a href=\"https:\/\/codepen.io\/team\/Cloudinary\">@Cloudinary<\/a>)\non <a href=\"https:\/\/codepen.io\">CodePen<\/a>.<\/p>\n<br \/>\n<p>It\u2019s also super easy to combine content-aware cropping with a number of other great features of <a href=\"https:\/\/cloudinary.com\/blog\/seven_ways_to_make_video_easier_with_a_dynamic_video_platform\">Cloudinary\u2019s Dynamic Video Platform<\/a>. Take a look at how to use <a href=\"https:\/\/cloudinary.com\/blog\/automatic_video_transcoding\">automatic video transcoding<\/a> and <a href=\"https:\/\/cloudinary.com\/blog\/new_auto_quality_setting_for_content_aware_video_compression\">content-aware compression<\/a> to achieve complete end-to-end automation and optimization.<\/p>\n<h2>In Summary<\/h2>\n<p>So there you have it, Cloudinary\u2019s powerful video solution just got even more powerful. Advanced AI and deep learning algorithms enable you to deliver your videos in the right size and aspect ratio, for every platform or device and automate the whole process. Go ahead and try it out with one of your own videos on our <a href=\"https:\/\/demo.cloudinary.com\/video-compare\/\">demo page<\/a>, or you can <a href=\"https:\/\/cloudinary.com\/users\/register_free\">sign up for a free account<\/a> and get going with the full product. Just remember to set the crop mode to <code>fill<\/code> and the gravity to <code>auto<\/code>. Check out our <a href=\"https:\/\/cloudinary.com\/documentation\/video_manipulation_and_delivery#automatic_cropping\">documentation<\/a> for more info.<\/p>\n<hr \/>\n<h2>Further Reading on Video Manipulation<\/h2>\n<ul>\n<li>\n<a href=\"https:\/\/cloudinary.com\/video_api\">Video Transcoding\nand Manipulation<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/top_10_mistakes_in_handling_website_videos_and_how_to_solve_them\">Top 10 Mistakes in Handling Website Videos and How to Solve Them<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/how_to_automate_compression_of_video_files_with_one_line_of_code\">How to Compress Video Size Automatically With One Line of Code<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/exoplayer_android_tutorial_easy_video_delivery_and_editing\">ExoPlayer Android Tutorial: Easy Video Delivery and Editing<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/html5_video_player\">Ultimate HTML5 Video Player Showdown: 10 Players Compared<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/how_to_generate_waveform_images_from_audio_files\">How to Generate Waveform Images From Audio Files<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/with_automatic_video_subtitles_silence_speaks_volumes\">Auto Generate Subtitles Based on Video Transcript<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/auto_generate_video_previews_with_great_results_every_time\">Auto-Generate Video Previews with Great Results Every Time<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/html5_video_tags_won_t_do_for_your_videos\">Adaptive HLS Streaming Using the HTML5 Video Tag<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/optimizing_video_with_cloudinary_and_the_html5_video_player_part_1\">Video Optimization With the HTML5  Player<\/a>\n<\/li>\n<li>\n<a href=\"https:\/\/cloudinary.com\/blog\/converting_android_videos_to_animated_gif_images_with_cloudinary_a_tutorial\">Converting Android Videos to Animated GIF Images With Cloudinary: A Tutorial<\/a>\n<\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":21908,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[25,303,305,304],"class_list":["post-21907","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-asset-management","tag-video","tag-video-api","tag-video-transformation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Content-Aware Automatic Cropping for Video<\/title>\n<meta name=\"description\" content=\"Learn how to use Cloudinary\u2019s AI-powered intelligent video auto-cropping and deliver the right aspect ratio automatically for mobile and social media.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automatically Crop Videos Without Losing Focus\" \/>\n<meta property=\"og:description\" content=\"Learn how to use Cloudinary\u2019s AI-powered intelligent video auto-cropping and deliver the right aspect ratio automatically for mobile and social media.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-10T15:12:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-16T21:33:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video-jpg?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1540\" \/>\n\t<meta property=\"og:image:height\" content=\"847\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Automatically Crop Videos Without Losing Focus\",\"datePublished\":\"2019-07-10T15:12:32+00:00\",\"dateModified\":\"2025-02-16T21:33:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus\"},\"wordCount\":6,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video.jpg?_i=AA\",\"keywords\":[\"Asset Management\",\"Video\",\"Video API\",\"Video Transformation\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2019\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus\",\"url\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus\",\"name\":\"Content-Aware Automatic Cropping for Video\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video.jpg?_i=AA\",\"datePublished\":\"2019-07-10T15:12:32+00:00\",\"dateModified\":\"2025-02-16T21:33:18+00:00\",\"description\":\"Learn how to use Cloudinary\u2019s AI-powered intelligent video auto-cropping and deliver the right aspect ratio automatically for mobile and social media.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video.jpg?_i=AA\",\"width\":1540,\"height\":847},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automatically Crop Videos Without Losing Focus\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Content-Aware Automatic Cropping for Video","description":"Learn how to use Cloudinary\u2019s AI-powered intelligent video auto-cropping and deliver the right aspect ratio automatically for mobile and social media.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus","og_locale":"en_US","og_type":"article","og_title":"Automatically Crop Videos Without Losing Focus","og_description":"Learn how to use Cloudinary\u2019s AI-powered intelligent video auto-cropping and deliver the right aspect ratio automatically for mobile and social media.","og_url":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus","og_site_name":"Cloudinary Blog","article_published_time":"2019-07-10T15:12:32+00:00","article_modified_time":"2025-02-16T21:33:18+00:00","og_image":[{"width":1540,"height":847,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video-jpg?_i=AA","type":"image\/jpeg"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus"},"author":{"name":"","@id":""},"headline":"Automatically Crop Videos Without Losing Focus","datePublished":"2019-07-10T15:12:32+00:00","dateModified":"2025-02-16T21:33:18+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus"},"wordCount":6,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video.jpg?_i=AA","keywords":["Asset Management","Video","Video API","Video Transformation"],"inLanguage":"en-US","copyrightYear":"2019","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus","url":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus","name":"Content-Aware Automatic Cropping for Video","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video.jpg?_i=AA","datePublished":"2019-07-10T15:12:32+00:00","dateModified":"2025-02-16T21:33:18+00:00","description":"Learn how to use Cloudinary\u2019s AI-powered intelligent video auto-cropping and deliver the right aspect ratio automatically for mobile and social media.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video.jpg?_i=AA","width":1540,"height":847},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/automatically_crop_videos_without_losing_focus#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Automatically Crop Videos Without Losing Focus"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649725829\/Web_Assets\/blog\/Automatic-Content-Aware-Cropping-for-Video\/Automatic-Content-Aware-Cropping-for-Video.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=21907"}],"version-history":[{"count":50,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21907\/revisions"}],"predecessor-version":[{"id":36867,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/21907\/revisions\/36867"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/21908"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=21907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=21907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=21907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}