{"id":7470,"date":"2026-06-06T00:20:22","date_gmt":"2026-06-05T22:20:22","guid":{"rendered":"https:\/\/entropie.org\/3615\/?p=7470"},"modified":"2026-06-22T14:42:04","modified_gmt":"2026-06-22T12:42:04","slug":"decouper-et-redimensionner-une-video-virtualbox","status":"publish","type":"post","link":"https:\/\/entropie.org\/3615\/index.php\/2026\/06\/06\/decouper-et-redimensionner-une-video-virtualbox\/","title":{"rendered":"D\u00e9couper et redimensionner une vid\u00e9o VirtualBox"},"content":{"rendered":"<p>Ma vid\u00e9o, enregistr\u00e9e avec VirtualBox, est au format 1280&#215;800 mais l&rsquo;image est entour\u00e9e de noir que je veux supprimer. La partie centrale qui m&rsquo;int\u00e9resse est au format 640&#215;400. Je fais donc un crop centr\u00e9.<\/p>\n<p>Pour automatiser (en Python) :<br \/>\nUsage : <em><strong>python3 convert.py input.webm 0 00:01:30<\/strong><\/em><\/p>\n<p>convert.py<\/p>\n<pre>\r\nimport subprocess\r\nimport sys\r\nimport os\r\n\r\nif len(sys.argv) < 4:\r\n    print(\"Usage: python3 convert.py &lt;input.webm&gt; &lt;start&gt; &lt;end&gt;\")\r\n    print(\"Ex: python3 convert.py input.webm 0 00:01:30\")\r\n    sys.exit(1)\r\n\r\ninput_file = sys.argv[1]\r\nstart      = sys.argv[2]\r\nend        = sys.argv[3]\r\n\r\noutput_name = \"output\"\r\n\r\n# Filtre de crop\/scale commun (la d\u00e9coupe se fait via -ss\/-to en input)\r\n# Remplacer \"neighbor\" par \"lanczos\" si la vid\u00e9o est r\u00e9elle (non pixel art)\r\nvf_base = \"crop=640:400:320:200\"\r\nvf_hd   = \"crop=640:400:320:200,scale=1280:800:flags=neighbor\"\r\n\r\nprint(\"=== Export MP4 640x400 (H.264) ===\")\r\nsubprocess.run([\r\n    \"ffmpeg\",\r\n    \"-ss\", start, \"-to\", end,\r\n    \"-i\", input_file,\r\n    \"-vf\", vf_base,\r\n    \"-c:v\", \"libx264\",\r\n    \"-crf\", \"16\",\r\n    \"-preset\", \"slow\",\r\n    \"-pix_fmt\", \"yuv420p\",\r\n    \"-c:a\", \"aac\",\r\n    \"-b:a\", \"192k\",\r\n    \"-movflags\", \"+faststart\",\r\n    f\"{output_name}-640x400.mp4\"\r\n], check=True)\r\n\r\nprint(\"=== Export MP4 HD 1280x800 (H.264) ===\")\r\nsubprocess.run([\r\n    \"ffmpeg\",\r\n    \"-ss\", start, \"-to\", end,\r\n    \"-i\", input_file,\r\n    \"-vf\", vf_hd,\r\n    \"-c:v\", \"libx264\",\r\n    \"-crf\", \"10\",\r\n    \"-preset\", \"veryslow\",\r\n    \"-pix_fmt\", \"yuv420p\",\r\n    \"-c:a\", \"aac\",\r\n    \"-b:a\", \"192k\",\r\n    \"-movflags\", \"+faststart\",\r\n    f\"{output_name}-1280x800.mp4\"\r\n], check=True)\r\n\r\nprint(\"=== Export WEBM 640x400 (VP9) ===\")\r\nsubprocess.run([\r\n    \"ffmpeg\",\r\n    \"-ss\", start, \"-to\", end,\r\n    \"-i\", input_file,\r\n    \"-vf\", vf_base,\r\n    \"-c:v\", \"libvpx-vp9\",\r\n    \"-crf\", \"15\",\r\n    \"-b:v\", \"0\",\r\n    \"-c:a\", \"libopus\",\r\n    \"-b:a\", \"192k\",\r\n    f\"{output_name}-640x400.webm\"\r\n], check=True)\r\n\r\nprint(\"=== Export WEBM HD 1280x800 (VP9) ===\")\r\nsubprocess.run([\r\n    \"ffmpeg\",\r\n    \"-ss\", start, \"-to\", end,\r\n    \"-i\", input_file,\r\n    \"-vf\", vf_hd,\r\n    \"-c:v\", \"libvpx-vp9\",\r\n    \"-crf\", \"10\",\r\n    \"-b:v\", \"0\",\r\n    \"-deadline\", \"best\",\r\n    \"-cpu-used\", \"0\",\r\n    \"-c:a\", \"libopus\",\r\n    \"-b:a\", \"192k\",\r\n    f\"{output_name}-1280x800.webm\"\r\n], check=True)\r\n\r\nprint(\"=== Termin\u00e9 ===\")\r\n<\/pre>\n<p>Pour YouTube, il faut passer \u00e0 5120x3200 pour que la vid\u00e9o ne soit pas d\u00e9grad\u00e9e fortement.<\/p>\n<p>convert5120.py<\/p>\n<pre>\r\nimport subprocess\r\nimport sys\r\nimport os\r\n\r\nif len(sys.argv) < 4:\r\n    print(\"Usage: python3 convert5120.py &lt;input.webm&gt; &lt;start&gt; &lt;end&gt;\")\r\n    print(\"Ex: python3 convert5120.py input.webm 0 00:01:30\")\r\n    sys.exit(1)\r\n\r\ninput_file = sys.argv[1]\r\nstart      = sys.argv[2]\r\nend        = sys.argv[3]\r\n\r\noutput_name = \"output\"\r\n\r\n# Filtre de crop\/scale commun (la d\u00e9coupe se fait via -ss\/-to en input)\r\n# Remplacer \"neighbor\" par \"lanczos\" si la vid\u00e9o est r\u00e9elle (non pixel art)\r\nvf_hd   = \"crop=640:400:320:200,scale=5120:3200:flags=neighbor\"\r\n\r\nprint(\"=== Export MP4 HD 5120x3200 (H.264) ===\")\r\nsubprocess.run([\r\n    \"ffmpeg\",\r\n    \"-ss\", start, \"-to\", end,\r\n    \"-i\", input_file,\r\n    \"-vf\", vf_hd,\r\n    \"-c:v\", \"libx264\",\r\n    \"-crf\", \"10\",\r\n    \"-preset\", \"veryslow\",\r\n    \"-pix_fmt\", \"yuv420p\",\r\n    \"-c:a\", \"aac\",\r\n    \"-b:a\", \"192k\",\r\n    \"-movflags\", \"+faststart\",\r\n    f\"{output_name}-5120x3200.mp4\"\r\n], check=True)\r\n\r\nprint(\"=== Termin\u00e9 ===\")\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ma vid\u00e9o, enregistr\u00e9e avec VirtualBox, est au format 1280&#215;800 mais l&rsquo;image est entour\u00e9e de noir que je veux supprimer. La partie centrale qui m&rsquo;int\u00e9resse est au format 640&#215;400. Je fais donc un crop centr\u00e9. Pour automatiser (en Python) : Usage : python3 convert.py input.webm 0 00:01:30 convert.py import subprocess import sys import os if len(sys.argv) &hellip; <a href=\"https:\/\/entropie.org\/3615\/index.php\/2026\/06\/06\/decouper-et-redimensionner-une-video-virtualbox\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;D\u00e9couper et redimensionner une vid\u00e9o VirtualBox&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,5,60],"tags":[],"class_list":["post-7470","post","type-post","status-publish","format-standard","hentry","category-debian","category-tutoriels","category-video"],"_links":{"self":[{"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/posts\/7470"}],"collection":[{"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/comments?post=7470"}],"version-history":[{"count":47,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/posts\/7470\/revisions"}],"predecessor-version":[{"id":7533,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/posts\/7470\/revisions\/7533"}],"wp:attachment":[{"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/media?parent=7470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/categories?post=7470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/tags?post=7470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}