Kagami / ffmpeg.js

Port of FFmpeg with Emscripten
Other
3.29k stars 335 forks source link

Video to Images with no result #51

Closed yuxineverforever closed 4 years ago

yuxineverforever commented 6 years ago

This code below is used to extract frames from one video.

However, I do not know how to get the output files, I have already listened to 'done' message. But the data in that is empty.

Can anyone give me a help?

Thanks

yuxineverforever commented 6 years ago

Code:

         utils.createFileFromUrl(videoFileUrl, videoFileUrl, function(videoData){
            var stdout = "";
            var stderr = "";
            var errdsp = "";
            var worker = new Worker("ffmpeg/ffmpeg-worker-webm.js");
            worker.onmessage = function(e){
            var msg = e.data;
            switch (msg.type) {
                case "ready":
                    worker.postMessage({type: "run", MEMFS: [{name: "demo.webm", data: videoData}], arguments: ["-i", "demo.webm", "$filename%04d.jpg", "-hide_banner"]});
                    break;
                case "stdout":
                    stdout += msg.data + "\n";
                    break;
                case "stderr":
                    stderr += msg.data + "\n";
                    break;
                case "error":
                    errdsp += msg.data + "\n";
                    break;
                case "done":
                    var stdres = msg.data.MEMFS;
                    console.log('DONE\n', stdres);
                    break;
                case "exit":
                    console.log("Process exited with code " + msg.data);
                    console.log("stdout: \n"+stdout);
                    console.log("stderr: \n"+stderr);
                    console.log("error: \n"+errdsp);
                    worker.terminate();
                    break;
                }
            };
        });

Log: Process exited with code 0 test.html:181 stdout:

test.html:182 stderr: [vp8 @ 0x7d5fd0] Warning: not compiled with thread support, using thread emulation [vorbis @ 0x7d68f0] Warning: not compiled with thread support, using thread emulation Input #0, matroska,webm, from 'demo.webm': Metadata: encoder : Lavf57.27.100 Duration: 00:02:35.60, start: 0.000000, bitrate: 992 kb/s Stream #0:0: Video: vp8, yuv420p, 640x360, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc (default) Stream #0:1(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default) [swscaler @ 0x7ecbf0] deprecated pixel format used, make sure you did set range correctly [vp8 @ 0x7e4110] Warning: not compiled with thread support, using thread emulation [mjpeg @ 0x8737c0] Warning: not compiled with thread support, using thread emulation [image2 @ 0x7daba0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. Output #0, image2, to '$filename%04d.jpg': Metadata: encoder : Lavf57.41.100 Stream #0:0: Video: mjpeg, yuvj420p(pc), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc (default) Metadata: encoder : Lavc57.48.101 mjpeg Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1 Stream mapping: Stream #0:0 -> #0:0 (vp8 (native) -> mjpeg (native)) Press [q] to stop, [?] for help frame= 34 fps=0.0 q=24.8 size=N/A time=00:00:01.13 bitrate=N/A speed=2.24x
frame= 83 fps= 82 q=24.8 size=N/A time=00:00:02.76 bitrate=N/A speed=2.75x
frame= 153 fps=101 q=24.8 size=N/A time=00:00:05.10 bitrate=N/A speed=3.39x
frame= 217 fps=108 q=24.8 size=N/A time=00:00:07.24 bitrate=N/A speed= 3.6x
frame= 276 fps=110 q=24.8 size=N/A time=00:00:09.20 bitrate=N/A speed=3.66x
frame= 328 fps=109 q=24.8 size=N/A time=00:00:10.94 bitrate=N/A speed=3.62x
frame= 377 fps=107 q=24.8 size=N/A time=00:00:12.57 bitrate=N/A speed=3.57x
frame= 427 fps=106 q=24.8 size=N/A time=00:00:14.24 bitrate=N/A speed=3.53x
frame= 477 fps=105 q=24.8 size=N/A time=00:00:15.91 bitrate=N/A speed= 3.5x
frame= 523 fps=104 q=24.8 size=N/A time=00:00:17.45 bitrate=N/A speed=3.46x
frame= 571 fps=103 q=24.8 size=N/A time=00:00:19.05 bitrate=N/A speed=3.43x
frame= 614 fps=101 q=24.8 size=N/A time=00:00:20.48 bitrate=N/A speed=3.38x
frame= 661 fps=101 q=24.8 size=N/A time=00:00:22.05 bitrate=N/A speed=3.36x
frame= 715 fps=101 q=24.8 size=N/A time=00:00:23.85 bitrate=N/A speed=3.38x
frame= 768 fps=101 q=24.8 size=N/A time=00:00:25.62 bitrate=N/A speed=3.38x
frame= 820 fps=102 q=24.8 size=N/A time=00:00:27.36 bitrate=N/A speed=3.39x
frame= 871 fps=102 q=24.8 size=N/A time=00:00:29.06 bitrate=N/A speed=3.39x
frame= 917 fps=101 q=24.8 size=N/A time=00:00:30.59 bitrate=N/A speed=3.37x
frame= 966 fps=101 q=24.8 size=N/A time=00:00:32.23 bitrate=N/A speed=3.36x
frame= 1023 fps=101 q=24.8 size=N/A time=00:00:34.13 bitrate=N/A speed=3.38x
frame= 1077 fps=102 q=24.8 size=N/A time=00:00:35.93 bitrate=N/A speed=3.39x
frame= 1126 fps=101 q=24.8 size=N/A time=00:00:37.57 bitrate=N/A speed=3.39x
frame= 1172 fps=101 q=24.8 size=N/A time=00:00:39.10 bitrate=N/A speed=3.37x
frame= 1218 fps=101 q=24.8 size=N/A time=00:00:40.64 bitrate=N/A speed=3.36x
frame= 1263 fps=100 q=24.8 size=N/A time=00:00:42.14 bitrate=N/A speed=3.34x
frame= 1309 fps=100 q=24.8 size=N/A time=00:00:43.67 bitrate=N/A speed=3.33x
frame= 1358 fps=100 q=24.8 size=N/A time=00:00:45.31 bitrate=N/A speed=3.33x
frame= 1405 fps=100 q=24.8 size=N/A time=00:00:46.88 bitrate=N/A speed=3.32x
frame= 1451 fps= 99 q=24.8 size=N/A time=00:00:48.41 bitrate=N/A speed=3.31x
frame= 1498 fps= 99 q=24.8 size=N/A time=00:00:49.98 bitrate=N/A speed= 3.3x
frame= 1545 fps= 99 q=24.8 size=N/A time=00:00:51.55 bitrate=N/A speed= 3.3x
frame= 1592 fps= 99 q=24.8 size=N/A time=00:00:53.11 bitrate=N/A speed=3.29x
frame= 1639 fps= 98 q=24.8 size=N/A time=00:00:54.68 bitrate=N/A speed=3.29x
frame= 1697 fps= 99 q=24.8 size=N/A time=00:00:56.62 bitrate=N/A speed= 3.3x
frame= 1750 fps= 99 q=24.8 size=N/A time=00:00:58.39 bitrate=N/A speed=3.31x
frame= 1803 fps= 99 q=24.8 size=N/A time=00:01:00.16 bitrate=N/A speed=3.31x
frame= 1857 fps=100 q=24.8 size=N/A time=00:01:01.96 bitrate=N/A speed=3.32x
frame= 1911 fps=100 q=24.8 size=N/A time=00:01:03.76 bitrate=N/A speed=3.33x
frame= 1958 fps=100 q=24.8 size=N/A time=00:01:05.33 bitrate=N/A speed=3.32x
frame= 2007 fps= 99 q=24.8 size=N/A time=00:01:06.96 bitrate=N/A speed=3.32x
frame= 2056 fps= 99 q=24.8 size=N/A time=00:01:08.60 bitrate=N/A speed=3.32x
frame= 2108 fps= 99 q=24.8 size=N/A time=00:01:10.33 bitrate=N/A speed=3.32x
frame= 2168 fps=100 q=24.8 size=N/A time=00:01:12.33 bitrate=N/A speed=3.33x
frame= 2222 fps=100 q=24.8 size=N/A time=00:01:14.14 bitrate=N/A speed=3.34x
frame= 2272 fps=100 q=24.8 size=N/A time=00:01:15.80 bitrate=N/A speed=3.34x
frame= 2320 fps=100 q=24.8 size=N/A time=00:01:17.41 bitrate=N/A speed=3.34x
frame= 2371 fps=100 q=24.8 size=N/A time=00:01:19.11 bitrate=N/A speed=3.34x
frame= 2421 fps=100 q=24.8 size=N/A time=00:01:20.78 bitrate=N/A speed=3.34x
frame= 2474 fps=100 q=24.8 size=N/A time=00:01:22.54 bitrate=N/A speed=3.34x
frame= 2527 fps=100 q=24.8 size=N/A time=00:01:24.31 bitrate=N/A speed=3.34x
frame= 2585 fps=100 q=24.8 size=N/A time=00:01:26.25 bitrate=N/A speed=3.35x
frame= 2640 fps=101 q=24.8 size=N/A time=00:01:28.08 bitrate=N/A speed=3.36x
frame= 2687 fps=100 q=24.8 size=N/A time=00:01:29.65 bitrate=N/A speed=3.35x
frame= 2740 fps=101 q=24.8 size=N/A time=00:01:31.42 bitrate=N/A speed=3.36x
frame= 2802 fps=101 q=24.8 size=N/A time=00:01:33.49 bitrate=N/A speed=3.37x
frame= 2852 fps=101 q=24.8 size=N/A time=00:01:35.16 bitrate=N/A speed=3.37x
frame= 2899 fps=101 q=24.8 size=N/A time=00:01:36.72 bitrate=N/A speed=3.36x
frame= 2952 fps=101 q=24.8 size=N/A time=00:01:38.49 bitrate=N/A speed=3.36x
frame= 3002 fps=101 q=24.8 size=N/A time=00:01:40.16 bitrate=N/A speed=3.36x
frame= 3046 fps=101 q=24.8 size=N/A time=00:01:41.63 bitrate=N/A speed=3.36x
frame= 3091 fps=100 q=24.8 size=N/A time=00:01:43.13 bitrate=N/A speed=3.35x
frame= 3147 fps=101 q=24.8 size=N/A time=00:01:45.00 bitrate=N/A speed=3.36x
frame= 3196 fps=101 q=24.8 size=N/A time=00:01:46.63 bitrate=N/A speed=3.35x
frame= 3242 fps=100 q=24.8 size=N/A time=00:01:48.17 bitrate=N/A speed=3.35x
frame= 3292 fps=100 q=24.8 size=N/A time=00:01:49.84 bitrate=N/A speed=3.35x
frame= 3340 fps=100 q=24.8 size=N/A time=00:01:51.44 bitrate=N/A speed=3.35x
frame= 3387 fps=100 q=24.8 size=N/A time=00:01:53.01 bitrate=N/A speed=3.34x
frame= 3438 fps=100 q=24.8 size=N/A time=00:01:54.71 bitrate=N/A speed=3.34x
frame= 3489 fps=100 q=24.8 size=N/A time=00:01:56.41 bitrate=N/A speed=3.34x
frame= 3536 fps=100 q=24.8 size=N/A time=00:01:57.98 bitrate=N/A speed=3.34x
frame= 3584 fps=100 q=24.8 size=N/A time=00:01:59.58 bitrate=N/A speed=3.34x
frame= 3636 fps=100 q=24.8 size=N/A time=00:02:01.32 bitrate=N/A speed=3.34x
frame= 3684 fps=100 q=24.8 size=N/A time=00:02:02.92 bitrate=N/A speed=3.34x
frame= 3732 fps=100 q=24.8 size=N/A time=00:02:04.52 bitrate=N/A speed=3.33x
frame= 3779 fps=100 q=24.8 size=N/A time=00:02:06.09 bitrate=N/A speed=3.33x
frame= 3829 fps=100 q=24.8 size=N/A time=00:02:07.76 bitrate=N/A speed=3.33x
frame= 3879 fps=100 q=24.8 size=N/A time=00:02:09.42 bitrate=N/A speed=3.33x
frame= 3927 fps=100 q=24.8 size=N/A time=00:02:11.03 bitrate=N/A speed=3.33x
frame= 3973 fps=100 q=24.8 size=N/A time=00:02:12.56 bitrate=N/A speed=3.33x
frame= 4022 fps=100 q=24.8 size=N/A time=00:02:14.20 bitrate=N/A speed=3.32x
frame= 4071 fps=100 q=24.8 size=N/A time=00:02:15.83 bitrate=N/A speed=3.32x
frame= 4118 fps=100 q=24.8 size=N/A time=00:02:17.40 bitrate=N/A speed=3.32x
frame= 4167 fps= 99 q=24.8 size=N/A time=00:02:19.03 bitrate=N/A speed=3.32x
frame= 4219 fps=100 q=24.8 size=N/A time=00:02:20.77 bitrate=N/A speed=3.32x
frame= 4265 fps= 99 q=24.8 size=N/A time=00:02:22.30 bitrate=N/A speed=3.32x
frame= 4311 fps= 99 q=24.8 size=N/A time=00:02:23.84 bitrate=N/A speed=3.31x
frame= 4361 fps= 99 q=24.8 size=N/A time=00:02:25.51 bitrate=N/A speed=3.31x
frame= 4410 fps= 99 q=24.8 size=N/A time=00:02:27.14 bitrate=N/A speed=3.31x
frame= 4459 fps= 99 q=24.8 size=N/A time=00:02:28.78 bitrate=N/A speed=3.31x
frame= 4506 fps= 99 q=24.8 size=N/A time=00:02:30.35 bitrate=N/A speed=3.31x
frame= 4569 fps= 99 q=24.8 size=N/A time=00:02:32.45 bitrate=N/A speed=3.32x
frame= 4655 fps=100 q=24.8 size=N/A time=00:02:35.32 bitrate=N/A speed=3.34x
frame= 4661 fps=100 q=24.8 Lsize=N/A time=00:02:35.52 bitrate=N/A speed=3.35x
video:44929kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

test.html:183 error:

yuxineverforever commented 6 years ago

I have made that work. So close the issue.

Zzzen commented 6 years ago

How did you manage to get it work? @sjtutyx

yuxineverforever commented 6 years ago

@Zzzen

we should delete this line under 'Exit' message to make it work.

worker.terminate();

According to my test, the 'Done' message is sent after 'Exit'. So if we terminate worker under 'Exit', the 'Done' message wont be received and the output is empty.

yuxineverforever commented 6 years ago

@Kagami I think we can build one Wiki page together to let others know about the possible pitfalls.

JerryCjr commented 5 years ago

i think so. @yuxineverforever