{"id":296,"date":"2024-04-03T20:56:42","date_gmt":"2024-04-03T20:56:42","guid":{"rendered":"https:\/\/www.henrikhjelm.se\/wordpress\/?p=296"},"modified":"2024-04-03T21:05:53","modified_gmt":"2024-04-03T21:05:53","slug":"convert-to-mp4","status":"publish","type":"post","link":"https:\/\/www.henrikhjelm.se\/wordpress\/convert-to-mp4\/","title":{"rendered":"convert to mp4"},"content":{"rendered":"<p>convert movie format to mp4 ?<br \/>\nthis code are scanning for example mkv and convert all to mp4<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#!\/bin\/bash\r\n\r\n# Help message function\r\nprint_help() {\r\n    echo \"Usage: $0 &lt;file_extension&gt;\"\r\n    echo \"Example: $0 mkv\"\r\n}\r\n\r\n# Check if argument is provided\r\nif [ $# -eq 0 ]; then\r\n    print_help\r\n    exit 1\r\nfi\r\n\r\n# Supported video file formats\r\nsupported_formats=(\"avi\" \"mkv\" \"mov\" \"mp4\" \"wmv\" \"flv\" \"mpg\" \"mpeg\" \"3gp\")\r\n\r\n# Check if provided file extension is supported\r\nif [[ ! \" ${supported_formats[@]} \" =~ \" $1 \" ]]; then\r\n    echo \"Unsupported file format. Supported formats: ${supported_formats[*]}\"\r\n    print_help\r\n    exit 1\r\nfi\r\n\r\n# Loop through all files with the provided extension in the current directory\r\nfor file in *.\"$1\"; do\r\n    # Check if the file exists\r\n    if [ -e \"$file\" ]; then\r\n        # Get the filename without extension\r\n        filename=\"${file%.*}\"\r\n\r\n        # Convert the file to mp4 using ffmpeg\r\n        ffmpeg -i \"$file\" \"${filename}2.mp4\"\r\n\r\n        # Optional: Check if conversion was successful and remove the original file\r\n        if [ $? -eq 0 ]; then\r\n            echo \"Conversion of $file successful.\"\r\n            rm \"$file\"\r\n        else\r\n            echo \"Conversion of $file failed.\"\r\n        fi\r\n    else\r\n        echo \"No files with .$1 extension found.\"\r\n        exit 1\r\n    fi\r\ndone<\/pre>\n<p>why not.. we do it in php to&#8230; but now you most write a dir to.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?php\r\n\r\n\/\/ Function to convert video files to mp4\r\nfunction convertVideosToMp4($folder, $extension) {\r\n    \/\/ Supported video file formats\r\n    $supportedFormats = [\"avi\", \"mkv\", \"mov\", \"mp4\", \"wmv\", \"flv\", \"mpg\", \"mpeg\", \"3gp\"];\r\n\r\n    \/\/ Check if provided file extension is supported\r\n    if (!in_array($extension, $supportedFormats)) {\r\n        echo \"Unsupported file format. Supported formats: \" . implode(\", \", $supportedFormats) . PHP_EOL;\r\n        return;\r\n    }\r\n\r\n    \/\/ Open the directory\r\n    if ($handle = opendir($folder)) {\r\n        \/\/ Loop through all files in the directory\r\n        while (false !== ($file = readdir($handle))) {\r\n            \/\/ Check if the file has the provided extension\r\n            if (pathinfo($file, PATHINFO_EXTENSION) == $extension) {\r\n                \/\/ Get the filename without extension\r\n                $filename = pathinfo($file, PATHINFO_FILENAME);\r\n\r\n                \/\/ Convert the file to mp4 using ffmpeg and rename to {filename}2.mp4\r\n                $command = \"ffmpeg -i \\\"$folder\/$file\\\" \\\"$folder\/{$filename}2.mp4\\\"\";\r\n                exec($command, $output, $return_var);\r\n\r\n                \/\/ Check if conversion was successful and remove the original file\r\n                if ($return_var == 0) {\r\n                    echo \"Conversion of $file successful.\" . PHP_EOL;\r\n                    unlink(\"$folder\/$file\");\r\n                } else {\r\n                    echo \"Conversion of $file failed.\" . PHP_EOL;\r\n                }\r\n            }\r\n        }\r\n        \/\/ Close the directory handle\r\n        closedir($handle);\r\n    } else {\r\n        echo \"Unable to open directory: $folder\" . PHP_EOL;\r\n    }\r\n}\r\n\r\n\/\/ Check if folder and extension are provided\r\nif ($argc &lt; 3) {\r\n    echo \"Usage: php convert.php &lt;folder_path&gt; &lt;file_extension&gt;\" . PHP_EOL;\r\n    echo \"Example: php convert.php \/path\/to\/folder mkv\" . PHP_EOL;\r\n    exit(1);\r\n}\r\n\r\n\/\/ Get folder path and extension from command line arguments\r\n$folderPath = $argv[1];\r\n$extension = $argv[2];\r\n\r\n\/\/ Call function to convert videos to mp4\r\nconvertVideosToMp4($folderPath, $extension);\r\n\r\n?&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p>why not&#8230; we do it in python to<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import os\r\nimport subprocess\r\nimport sys\r\n\r\ndef convert_videos_to_mp4(folder, extension):\r\n    # Supported video file formats\r\n    supported_formats = [\"avi\", \"mkv\", \"mov\", \"mp4\", \"wmv\", \"flv\", \"mpg\", \"mpeg\", \"3gp\"]\r\n\r\n    # Check if provided file extension is supported\r\n    if extension not in supported_formats:\r\n        print(f\"Unsupported file format. Supported formats: {', '.join(supported_formats)}\")\r\n        return\r\n\r\n    # Loop through all files in the folder\r\n    for file in os.listdir(folder):\r\n        # Check if the file has the provided extension\r\n        if file.endswith(f\".{extension}\"):\r\n            # Get the filename without extension\r\n            filename = os.path.splitext(file)[0]\r\n\r\n            # Convert the file to mp4 using ffmpeg and rename to {filename}2.mp4\r\n            command = f\"ffmpeg -i \\\"{os.path.join(folder, file)}\\\" \\\"{os.path.join(folder, filename)}2.mp4\\\"\"\r\n            subprocess.run(command, shell=True)\r\n\r\n            # Check if conversion was successful and remove the original file\r\n            if os.path.exists(os.path.join(folder, f\"{filename}2.mp4\")):\r\n                print(f\"Conversion of {file} successful.\")\r\n                os.remove(os.path.join(folder, file))\r\n            else:\r\n                print(f\"Conversion of {file} failed.\")\r\n\r\n# Check if folder and extension are provided\r\nif len(sys.argv) &lt; 3:\r\n    print(\"Usage: python convert.py &lt;folder_path&gt; &lt;file_extension&gt;\")\r\n    print(\"Example: python convert.py \/path\/to\/folder mkv\")\r\n    sys.exit(1)\r\n\r\n# Get folder path and extension from command line arguments\r\nfolder_path = sys.argv[1]\r\nextension = sys.argv[2]\r\n\r\n# Call function to convert videos to mp4\r\nconvert_videos_to_mp4(folder_path, extension)<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>convert movie format to mp4 ? this code are scanning for example mkv and convert all to mp4 #!\/bin\/bash # Help message function print_help() { echo &#8220;Usage: $0 &lt;file_extension&gt;&#8221; echo &#8220;Example: $0 mkv&#8221; } # Check if argument is provided if [ $# -eq 0 ]; then print_help exit 1 fi # Supported video file [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":297,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-296","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux-stuff"],"_links":{"self":[{"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/posts\/296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/comments?post=296"}],"version-history":[{"count":4,"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/posts\/296\/revisions"}],"predecessor-version":[{"id":301,"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/posts\/296\/revisions\/301"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/media\/297"}],"wp:attachment":[{"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/media?parent=296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/categories?post=296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.henrikhjelm.se\/wordpress\/wp-json\/wp\/v2\/tags?post=296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}