{"id":538,"date":"2026-06-20T04:55:22","date_gmt":"2026-06-20T04:55:22","guid":{"rendered":"https:\/\/toolibee.com\/?page_id=538"},"modified":"2026-06-20T04:55:23","modified_gmt":"2026-06-20T04:55:23","slug":"video-converter","status":"publish","type":"page","link":"https:\/\/toolibee.com\/?page_id=538","title":{"rendered":"Video Converter"},"content":{"rendered":"    <div id=\"toolibee-video-58691\" class=\"toolibee-video-tool\">\n        <div class=\"tb-card\">\n            <div class=\"tb-header\">\n                <div class=\"tb-bee\">\ud83d\udc1d<\/div>\n                <div>\n                    <h2>Toolibee Video Converter<\/h2>\n                    <p>Convert video files to MP4, MOV to MP4, WEBM, or GIF.<\/p>\n                <\/div>\n            <\/div>\n\n            <div class=\"tb-body\">\n                <div class=\"tb-grid\">\n                    <div class=\"tb-panel\">\n                        <label>Choose video file<\/label>\n                        <input type=\"file\" class=\"tb-file\" accept=\"video\/mp4,video\/quicktime,video\/webm,video\/x-msvideo,video\/x-matroska,.mp4,.mov,.webm,.avi,.mkv,.m4v\" \/>\n\n                        <label>Conversion type<\/label>\n                        <select class=\"tb-mode\">\n                            <option value=\"mp4\">MP4 Converter<\/option>\n                            <option value=\"gif\">Video to GIF<\/option>\n                            <option value=\"movmp4\">MOV to MP4<\/option>\n                            <option value=\"video\">Video Converter<\/option>\n                        <\/select>\n\n                        <label>Output format<\/label>\n                        <select class=\"tb-format\">\n                            <option value=\"mp4\">MP4<\/option>\n                            <option value=\"webm\">WEBM<\/option>\n                            <option value=\"gif\">GIF<\/option>\n                        <\/select>\n\n                        <div class=\"tb-row\">\n                            <div>\n                                <label>Start time <small>optional<\/small><\/label>\n                                <input type=\"text\" class=\"tb-start\" placeholder=\"00:00:00\" \/>\n                            <\/div>\n                            <div>\n                                <label>Duration <small>optional<\/small><\/label>\n                                <input type=\"text\" class=\"tb-duration\" placeholder=\"00:00:10\" \/>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"tb-row\">\n                            <div>\n                                <label>GIF width<\/label>\n                                <select class=\"tb-gif-width\">\n                                    <option value=\"480\">480 px<\/option>\n                                    <option value=\"640\" selected>640 px<\/option>\n                                    <option value=\"800\">800 px<\/option>\n                                <\/select>\n                            <\/div>\n                            <div>\n                                <label>Quality<\/label>\n                                <select class=\"tb-quality\">\n                                    <option value=\"standard\" selected>Standard<\/option>\n                                    <option value=\"small\">Smaller file<\/option>\n                                    <option value=\"high\">Higher quality<\/option>\n                                <\/select>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"tb-actions\">\n                            <button type=\"button\" class=\"tb-convert\">Convert video<\/button>\n                            <button type=\"button\" class=\"tb-clear\">Clear<\/button>\n                        <\/div>\n\n                        <p class=\"tb-note\"><strong>Important:<\/strong> This plugin requires FFmpeg on your server. Large files depend on your hosting upload size and timeout settings.<\/p>\n                    <\/div>\n\n                    <div class=\"tb-panel tb-result-panel\">\n                        <label>Conversion status<\/label>\n                        <div class=\"tb-output\" aria-live=\"polite\">Upload a video and choose a conversion type.<\/div>\n\n                        <div class=\"tb-progress\" hidden>\n                            <div class=\"tb-progress-bar\"><div class=\"tb-progress-fill\"><\/div><\/div>\n                            <div class=\"tb-progress-text\">Preparing upload...<\/div>\n                        <\/div>\n\n                        <div class=\"tb-download-wrap\" hidden>\n                            <a class=\"tb-download\" href=\"#\" download>Download converted file<\/a>\n                        <\/div>\n\n                        <p class=\"tb-note\"><strong>Tip:<\/strong> For GIFs, use a short duration such as 5 to 15 seconds.<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <style>\n        #toolibee-video-58691{--tb-navy:#18324a;--tb-blue:#2f80ed;--tb-sky:#eaf6ff;--tb-gold:#f6b93b;--tb-ink:#1f2937;--tb-muted:#64748b;--tb-border:#dbe7f3;max-width:1000px;margin:24px auto;padding:0 14px;font-family:Inter,Arial,sans-serif;color:var(--tb-ink)}\n        #toolibee-video-58691 *{box-sizing:border-box}\n        #toolibee-video-58691 .tb-card{background:#fff;border:1px solid var(--tb-border);border-radius:22px;box-shadow:0 14px 35px rgba(24,50,74,.10);overflow:hidden}\n        #toolibee-video-58691 .tb-header{display:flex;gap:14px;align-items:center;background:linear-gradient(135deg,var(--tb-navy),#24577c);color:#fff;padding:22px 24px}\n        #toolibee-video-58691 .tb-bee{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--tb-gold);color:#1f2937;font-size:25px;box-shadow:inset 0 -4px 0 rgba(0,0,0,.08);flex:0 0 46px}\n        #toolibee-video-58691 h2{margin:0;font-size:25px;line-height:1.2;color:#fff}\n        #toolibee-video-58691 .tb-header p{margin:5px 0 0;color:#e8f5ff}\n        #toolibee-video-58691 .tb-body{padding:24px;background:linear-gradient(180deg,#fff,#fbfdff)}\n        #toolibee-video-58691 .tb-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}\n        #toolibee-video-58691 .tb-panel{background:#fff;border:1px solid var(--tb-border);border-radius:18px;padding:18px}\n        #toolibee-video-58691 label{display:block;font-weight:800;margin:0 0 7px;color:var(--tb-navy)}\n        #toolibee-video-58691 label:not(:first-child){margin-top:14px}\n        #toolibee-video-58691 small{font-weight:600;color:var(--tb-muted)}\n        #toolibee-video-58691 input,#toolibee-video-58691 select{width:100%;box-sizing:border-box;border:1px solid var(--tb-border);border-radius:14px;padding:12px 13px;font-size:15px;background:#fff;color:var(--tb-ink)}\n        #toolibee-video-58691 .tb-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n        #toolibee-video-58691 .tb-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}\n        #toolibee-video-58691 button{border:0;border-radius:999px;padding:11px 18px;font-weight:800;cursor:pointer;background:var(--tb-blue);color:#fff;box-shadow:0 7px 18px rgba(47,128,237,.22)}\n        #toolibee-video-58691 .tb-clear{background:#fff;color:var(--tb-navy);border:1px solid var(--tb-border);box-shadow:none}\n        #toolibee-video-58691 .tb-output{background:var(--tb-sky);border:1px solid var(--tb-border);border-radius:16px;padding:16px;min-height:180px;white-space:pre-wrap;line-height:1.55}\n        #toolibee-video-58691 .tb-note{font-size:13px;color:var(--tb-muted);line-height:1.5;margin-top:12px}\n        #toolibee-video-58691 .tb-note strong{color:var(--tb-navy)}\n        #toolibee-video-58691 .tb-progress{margin-top:16px}\n        #toolibee-video-58691 .tb-progress-bar{height:16px;background:#eaf6ff;border:1px solid var(--tb-border);border-radius:999px;overflow:hidden}\n        #toolibee-video-58691 .tb-progress-fill{height:100%;width:0;background:var(--tb-blue);transition:width .25s ease}\n        #toolibee-video-58691 .tb-progress-text{font-size:13px;color:var(--tb-muted);margin-top:7px}\n        #toolibee-video-58691 .tb-download-wrap{margin-top:16px}\n        #toolibee-video-58691 .tb-download{display:inline-flex;text-decoration:none;border-radius:999px;padding:11px 18px;font-weight:800;background:var(--tb-gold);color:#1f2937}\n        @media(max-width:760px){#toolibee-video-58691 .tb-grid,#toolibee-video-58691 .tb-row{grid-template-columns:1fr}#toolibee-video-58691 .tb-header{align-items:flex-start}}\n    <\/style>\n\n    <script>\n    (function(){\n        var root = document.getElementById('toolibee-video-58691');\n        if (!root) return;\n        var ajaxUrl = \"https:\/\/toolibee.com\/wp-admin\/admin-ajax.php\";\n        var nonce = \"89fe1116c4\";\n        var qs = function(sel){ return root.querySelector(sel); };\n\n        function setOutput(text){ qs('.tb-output').textContent = text; }\n        function setProgress(percent, text){\n            qs('.tb-progress').hidden = false;\n            qs('.tb-progress-fill').style.width = percent + '%';\n            qs('.tb-progress-text').textContent = text || '';\n        }\n        function syncMode(){\n            var mode = qs('.tb-mode').value;\n            if (mode === 'gif') qs('.tb-format').value = 'gif';\n            if (mode === 'mp4' || mode === 'movmp4') qs('.tb-format').value = 'mp4';\n        }\n        qs('.tb-mode').addEventListener('change', syncMode);\n\n        qs('.tb-convert').addEventListener('click', function(){\n            var file = qs('.tb-file').files[0];\n            qs('.tb-download-wrap').hidden = true;\n            qs('.tb-download').href = '#';\n            if (!file) { setOutput('Choose a video file first.'); return; }\n\n            var form = new FormData();\n            form.append('action', 'toolibee_video_convert');\n            form.append('nonce', nonce);\n            form.append('video', file);\n            form.append('mode', qs('.tb-mode').value);\n            form.append('format', qs('.tb-format').value);\n            form.append('start', qs('.tb-start').value.trim());\n            form.append('duration', qs('.tb-duration').value.trim());\n            form.append('gif_width', qs('.tb-gif-width').value);\n            form.append('quality', qs('.tb-quality').value);\n\n            setOutput('Uploading and converting. Please keep this page open.');\n            setProgress(10, 'Uploading file...');\n\n            var xhr = new XMLHttpRequest();\n            xhr.open('POST', ajaxUrl, true);\n            xhr.upload.onprogress = function(e){\n                if (e.lengthComputable) {\n                    var percent = Math.max(10, Math.min(65, Math.round((e.loaded \/ e.total) * 65)));\n                    setProgress(percent, 'Uploading: ' + percent + '%');\n                }\n            };\n            xhr.onload = function(){\n                setProgress(90, 'Finishing conversion...');\n                try {\n                    var data = JSON.parse(xhr.responseText);\n                    if (!data.success) {\n                        setProgress(0, 'Conversion failed.');\n                        setOutput(data.data || 'Conversion failed.');\n                        return;\n                    }\n                    setProgress(100, 'Complete.');\n                    setOutput('Conversion complete.\\n\\nOriginal file: ' + data.data.original + '\\nConverted file: ' + data.data.filename);\n                    qs('.tb-download').href = data.data.url;\n                    qs('.tb-download').setAttribute('download', data.data.filename);\n                    qs('.tb-download-wrap').hidden = false;\n                } catch(e) {\n                    setProgress(0, 'Error.');\n                    setOutput('The server returned an unexpected response. The file may be too large or the server timed out.');\n                }\n            };\n            xhr.onerror = function(){\n                setProgress(0, 'Connection error.');\n                setOutput('Connection error. Try a smaller file or check server upload limits.');\n            };\n            xhr.send(form);\n        });\n\n        qs('.tb-clear').addEventListener('click', function(){\n            qs('.tb-file').value = '';\n            qs('.tb-mode').value = 'mp4';\n            qs('.tb-format').value = 'mp4';\n            qs('.tb-start').value = '';\n            qs('.tb-duration').value = '';\n            qs('.tb-gif-width').value = '640';\n            qs('.tb-quality').value = 'standard';\n            qs('.tb-progress').hidden = true;\n            qs('.tb-progress-fill').style.width = '0';\n            qs('.tb-download-wrap').hidden = true;\n            setOutput('Upload a video and choose a conversion type.');\n        });\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-538","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/toolibee.com\/index.php?rest_route=\/wp\/v2\/pages\/538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/toolibee.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/toolibee.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/toolibee.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/toolibee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=538"}],"version-history":[{"count":1,"href":"https:\/\/toolibee.com\/index.php?rest_route=\/wp\/v2\/pages\/538\/revisions"}],"predecessor-version":[{"id":539,"href":"https:\/\/toolibee.com\/index.php?rest_route=\/wp\/v2\/pages\/538\/revisions\/539"}],"wp:attachment":[{"href":"https:\/\/toolibee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}