Why Nostr? What is Njump?
2024-01-23 01:46:40

npub1eu…ms6ns on Nostr: ffmpeg wasm implementations were slow and ugly but i found this webm-wasm tool it ...

ffmpeg wasm implementations were slow and ugly
but i found this webm-wasm tool
it processes images input, so what i did, i extract images from video file first. this is quite fast. then encode it to webm

image extraction + encoding speed can be less than a second per frame, and this is running single threaded in web browser
ffmpeg would have taken 10 times longer

https://github.com/GoogleChromeLabs/webm-wasm
video clip creator
now working standalone version
data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPnZpZGVvIGNsaXAgY3JlYXRvcjwvdGl0bGU+CiAgICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAxZW07CiAgICB9CiAgICBoMSB7CiAgICAgIG1hcmdpbi10b3A6IDA7CiAgICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICB9CiAgICAjbG9nIHsKICAgICAgb3ZlcmZsb3c6IGF1dG87CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgYm90dG9tOiAxZW07CiAgICAgIHRvcDogMTFlbTsKICAgICAgYm9yZGVyOiAuM2VtIHNvbGlkICM2NjY7CiAgICAgIGJvcmRlci1yYWRpdXM6IC4zZW07CiAgICAgIHJpZ2h0OiAxZW07CiAgICAgIGxlZnQ6IDFlbTsKICAgICAgcGFkZGluZzogLjVlbTsKICAgICAgYmFja2dyb3VuZDogI2VlZTsKICAgIH0KICAgICNwcm9ncmVzcyB7CiAgICAgIGJhY2tncm91bmQ6ICNkZGQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IC4zZW07CiAgICB9CiAgICAjcHJvZ3Jlc3NiYXIgewogICAgICBoZWlnaHQ6IDEuM2VtOwogICAgICBiYWNrZ3JvdW5kOiBibHVlOwogICAgICB3aWR0aDogMCU7CiAgICAgIGJvcmRlci1yYWRpdXM6IC40ZW07CiAgICB9CiAgICAjbG9nID4gYSB7CiAgICAgIG1hcmdpbi1ib3R0b206IDFlbTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CiAgICBwIHsKICAgICAgbWFyZ2luLXRvcDogMDsKICAgICAgbWF4LWhlaWdodDogN2VtOwogICAgICBvdmVyZmxvdzogc2Nyb2xsOwogICAgfQogICAgdmlkZW8gewogICAgICBkaXNwbGF5OiBub25lOwogICAgICB6LWluZGV4OiAxOwogICAgfQogICAgI2NhbnZhcywKICAgIHZpZGVvIHsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IDFlbTsKICAgICAgcmlnaHQ6IDFlbTsKICAgICAgd2lkdGg6IDEwZW07CiAgICAgIGhlaWdodDogNmVtOwogICAgfQogICAgPC9zdHlsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8aDE+dmlkZW8gY2xpcCBjcmVhdG9yPC9oMT4KICAgIDxmb3JtIGlkPSJmb3JtIj4KICAgICAgPHA+CiAgICAgICAgPGlucHV0IGlkPSJmaWxlIiB0eXBlPSJmaWxlIi8+CiAgICAgIDwvcD4KICAgICAgPHA+CiAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9ImVuY29kZSIvPgogICAgICA8L3A+CiAgICA8L2Zvcm0+CiAgICA8dmlkZW8gaWQ9InZpZGVvIj48L3ZpZGVvPgogICAgPHZpZGVvIGlkPSJ2aWRlbzIiIGNvbnRyb2xzIGxvb3A9IjEiPjwvdmlkZW8+CiAgICA8Y2FudmFzIGlkPSJjYW52YXMiPjwvY2FudmFzPgogICAgPGRpdiBpZD0icHJvZ3Jlc3MiPgogICAgICA8ZGl2IGlkPSJwcm9ncmVzc2JhciI+PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImxvZyI+PGRpdj4KICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKQogICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykKICAgIGNvbnN0IGxvZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKQogICAgY29uc3QgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmlkZW8iKQogICAgY29uc3QgdmlkZW8yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpZGVvMiIpCiAgICBjb25zdCBwcm9ncmVzc2JhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9ncmVzc2JhciIpCiAgICBsZXQgZmlsZXMgPSBudWxsCgogICAgY29uc3QgZnJhbWVfZHVyYXRpb24gPSAxLzMwCiAgICBjb25zdCBleHRyYWN0X2ZyYW1lX2NvdW50ID0gMzAvLzEgLyBmcmFtZV9kdXJhdGlvbgogICAgbGV0IHRpbWUgPSAxNQoKICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGZldGNoKAogICAgICAiaHR0cHM6Ly91bnBrZy5jb20vd2VibS13YXNtQDAuNC4xL2Rpc3Qvd2VibS13b3JrZXIuanMiCiAgICApLnRoZW4ociA9PiByLmFycmF5QnVmZmVyKCkpCgogICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcigKICAgICAgVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiAidGV4dC9qYXZhc2NyaXB0IiB9KSkKICAgICkKCiAgICBsZXQgZW5jb2RlZF9kYXRhID0gW10KICAgIGxldCBzdGFydF90aW1lID0gbnVsbAogICAgbGV0IHJlYWR5ID0gZmFsc2UKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9ybSIpLm9uc3VibWl0ID0gZnVuY3Rpb24oZSl7CiAgICAgIGUucHJldmVudERlZmF1bHQoKQogICAgICB2aWRlbzIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgdmlkZW8yLnBhdXNlKCkKICAgICAgcHJvZ3Jlc3NiYXIuc3R5bGUud2lkdGggPSAiMC41JSIKICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dCIpLmZvckVhY2goZWwgPT4gZWwuZGlzYWJsZWQgPSB0cnVlKQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3VibWl0IikudmFsdWUgPSAiZW5jb2RpbmciCiAgICAgIGZpbGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUiKS5maWxlcwogICAgICBzdGFydCgpCiAgICB9CgogICAgZnVuY3Rpb24gYmxvYlRvRGF0YVVSTChibG9iLCBjYWxsYmFjaykgewogICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgdmFyIGEgPSBuZXcgRmlsZVJlYWRlcigpCiAgICAgICAgYS5vbmxvYWQgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICByZXNvbHZlKGUudGFyZ2V0LnJlc3VsdCkKICAgICAgICB9CiAgICAgICAgYS5yZWFkQXNEYXRhVVJMKGJsb2IpCiAgICAgIH0pCiAgICB9CgogICAgZnVuY3Rpb24gaW5mbyhtc2csIHR5cGUpewogICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodHlwZSA9PT0gMiAmJiAiYSIgfHwgInAiKQogICAgICBlbFsodHlwZSA9PT0gMykgJiYgImlubmVySFRNTCIgfHwgImlubmVyVGV4dCJdID0gbXNnCgogICAgICBpZih0eXBlKXsKICAgICAgICBlbC5ocmVmID0gbXNnCiAgICAgIH0KCiAgICAgIGxvZy5hcHBlbmQoZWwpCiAgICAgIGxvZy5zY3JvbGxUbygwLCAxZTYpCiAgICB9CgogICAgYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc192aWRlbygpewogICAgICBsZXQgZnJhbWVfY291bnQgPSAwCgogICAgICB2aWRlby5vbnNlZWtlZCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBmcmFtZV9jb3VudCsrCiAgICAgICAgaW5mbygiZXh0cmFjdCBmcmFtZSAiICsgZnJhbWVfY291bnQgKyAiIC8gIiArIGV4dHJhY3RfZnJhbWVfY291bnQpCgogICAgICAgIGN0eC5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CiAgICAgICAgY29uc3QgaW1hZ2VEYXRhID0gY3R4LmdldEltYWdlRGF0YSgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpCgogICAgICAgIGlmKGZyYW1lX2NvdW50IDwgZXh0cmFjdF9mcmFtZV9jb3VudCl7CiAgICAgICAgICB0aW1lICs9IGZyYW1lX2R1cmF0aW9uCiAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgKHRpbWUgPCAwID8gdGhpcy5kdXJhdGlvbiA6IDApICsgdGltZSksIHRoaXMuZHVyYXRpb24pCiAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoaW1hZ2VEYXRhLmRhdGEuYnVmZmVyLCBbaW1hZ2VEYXRhLmRhdGEuYnVmZmVyXSkKICAgICAgICB9ZWxzZXsKICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZShudWxsKQogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIHRvdGFsX3RpbWUoc3RhcnQpewogICAgICByZXR1cm4gKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnQpIC8gMTAwMAogICAgfQoKICAgIGZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlclVSTChidWZmZXIsIHR5cGUgPSAnJykgewogICAgICByZXR1cm4gVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbYnVmZmVyXSwge3R5cGV9KSk7CiAgICB9CgogICAgYXN5bmMgZnVuY3Rpb24gc2hvd19kYXRhX3VyaShibG9iKXsKICAgICAgbGV0IGJsb2JfdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKQoKICAgICAgaW5mbyhhd2FpdCBibG9iVG9EYXRhVVJMKGJsb2IpKQogICAgICBpbmZvKGJsb2JfdXJsLCAyKQoKICAgICAgdmlkZW8yLnNyYyA9IGJsb2JfdXJsCiAgICAgIHZpZGVvMi5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgdmlkZW8yLnBsYXkoKQoKICAgICAgcHJvZ3Jlc3NiYXIuc3R5bGUud2lkdGggPSAiMTAwJSIKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iKS5yZXNldCgpCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdWJtaXQiKS52YWx1ZSA9ICJlbmNvZGUiCiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImZvcm0gaW5wdXQiKS5mb3JFYWNoKGVsID0+IGVsLmRpc2FibGVkID0gZmFsc2UpCiAgICB9CgogICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpewogICAgICBpZighZS5kYXRhKSB7CiAgICAgICAgcmV0dXJuCiAgICAgIH0KCiAgICAgIGlmKGUuZGF0YSAhPSBudWxsICYmIHR5cGVvZiBlLmRhdGEgPT0gIm9iamVjdCIgJiYgZS5kYXRhLmJ5dGVMZW5ndGggPiAwKXsKICAgICAgICBlbmNvZGVkX2RhdGEucHVzaChlLmRhdGEpCiAgICAgICAgaW5mbygiZW5jb2RlICIgKyBlbmNvZGVkX2RhdGEubGVuZ3RoICsgIiAvICIgKyBleHRyYWN0X2ZyYW1lX2NvdW50KQogICAgICAgIHByb2dyZXNzYmFyLnN0eWxlLndpZHRoID0gcGFyc2VJbnQoKGVuY29kZWRfZGF0YS5sZW5ndGggLyBleHRyYWN0X2ZyYW1lX2NvdW50KSAqIDEwMCwgMTApICsgIiUiCiAgICAgIH0KCiAgICAgIGlmKGUuZGF0YSA9PSAiUkVBRFkiKXsKICAgICAgICBpbmZvKCJyZWFkeSIsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCkKCiAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsKICAgICAgICAgIHdpZHRoOiBjYW52YXMud2lkdGgsCiAgICAgICAgICBoZWlnaHQ6IGNhbnZhcy5oZWlnaHQsCiAgICAgICAgICByZWFsdGltZTogdHJ1ZSwKICAgICAgICAgIGJpdHJhdGU6IDEwMAogICAgICAgIH0pCgogICAgICAgIC8vZm9yKGxldCBpID0gMDsgaSA8IGZyYW1lcy5sZW5ndGg7IGkrKyl7CiAgICAgICAgLy8gIHdvcmtlci5wb3N0TWVzc2FnZShmcmFtZXNbaV0sIFtmcmFtZXNbaV1dKQogICAgICAgIC8vfQoKICAgICAgICByZWFkeSA9IHRydWUKICAgICAgICBwcm9jZXNzX3ZpZGVvKCkKICAgICAgfQogICAgICBlbHNlIGlmKHJlYWR5KXsKICAgICAgICBpZihlLmRhdGEuYnl0ZUxlbmd0aCA9PSAwKXsKICAgICAgICAgIGluZm8oImVuY29kaW5nIGZpbmlzaGVkIChkdXJhdGlvbjogIiArIHBhcnNlSW50KHRvdGFsX3RpbWUoc3RhcnRfdGltZSksIDEwKSArCiAgICAgICAgICAgICIgcywgc3BlZWQ6ICIgKyBwYXJzZUludCh0b3RhbF90aW1lKHN0YXJ0X3RpbWUpIC8gZXh0cmFjdF9mcmFtZV9jb3VudCwgMTApICsiIHMgLyBmcmFtZSkiKQogICAgICAgICAgbGV0IGJsb2IgPSBuZXcgQmxvYihlbmNvZGVkX2RhdGEsIHsgdHlwZTogJ3ZpZGVvL3dlYm0nIH0pCiAgICAgICAgICBzaG93X2RhdGFfdXJpKGJsb2IpCiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gbG9hZF92aWRlbygpewogICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgdmlkZW8uc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlc1swXSkKCiAgICAgICAgdmlkZW8ub25sb2FkZWRtZXRhZGF0YSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgY2FudmFzLmhlaWdodCA9IHZpZGVvLnZpZGVvSGVpZ2h0CiAgICAgICAgICBjYW52YXMud2lkdGggPSB2aWRlby52aWRlb1dpZHRoCiAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgKHRpbWUgPCAwID8gdGhpcy5kdXJhdGlvbiA6IDApICsgdGltZSksIHRoaXMuZHVyYXRpb24pCiAgICAgICAgICByZXNvbHZlKCkKICAgICAgICB9CiAgICAgIH0pCiAgICB9CgogICAgYXN5bmMgZnVuY3Rpb24gc3RhcnQoKXsKICAgICAgc3RhcnRfdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpCiAgICAgIHdpbmRvdy5zdGFydF90aW1lID0gc3RhcnRfdGltZQogICAgICBhd2FpdCBsb2FkX3ZpZGVvKCkKICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJodHRwczovL3VucGtnLmNvbS93ZWJtLXdhc21AMC40LjEvZGlzdC93ZWJtLXdhc20ud2FzbSIpCiAgICB9CiAgICA8L3NjcmlwdD4KICA8L2JvZHk+CjwvaHRtbD4K
Author Public Key
npub1eu502ceyh3vhd3ejy96yywuaev6hjsy0fn6n35zmlzdwnst75zfshms6ns