bgrins / videoconverter.js

[UNMAINTAINED] Convert videos in your browser
http://bgrins.github.io/videoconverter.js/
Other
2.34k stars 300 forks source link

x264 comitted, but supported? Typo in docs #47

Open Noitidart opened 8 years ago

Noitidart commented 8 years ago

Hi there, I am trying to run this command: -i input.webm -vcodec libx264 -pix_fmt yuv420p -strict -2 -acodec aac output.mp4

Here is my code:

var command = [ // https://twittercommunity.com/t/ffmpeg-mp4-upload-to-twitter-unsupported-error/68602/2?u=noitidart
    '-i', 'input.webm',
    '-vcodec', 'libx264',
    '-pix_fmt', 'yuv420p',
    '-strict', '-2',
    '-acodec', 'aac',
    'output.mp4'
]

var converted_files = ffmpeg_run({
    arguments: command,
    files: [{ data:(new Uint8Array(rec.arrbuf)), name:'input.webm' }],
    TOTAL_MEMORY: 268435456
});

I see x264 support was added in this commit - https://github.com/bgrins/videoconverter.js/tree/fe606e414d27ab7297a5d444bdba05ae839d035a

Can you please help me to run this command.

Noitidart commented 8 years ago

Ah I think its just a typo in the docs that says its not supported.

I see I had to use ffmpeg-all-codec.js. So I did that, but now I am getting: missing function: madvise which is real weird. Here is my output:

ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Jun  9 2014 20:24:32 with emcc (Emscripten GCC-like replacement) 1.12.0 (commit 6960d2296299e96d43e694806f5d35799ef8d39c)
  configuration: --cc=emcc --prefix=/Users/bgrinstead/Sites/videoconverter.js/build/ffmpeg/../dist --extra-cflags='-I/Users/bgrinstead/Sites/videoconverter.js/build/ffmpeg/../dist/include -v' --enable-cross-compile --target-os=none --arch=x86_32 --cpu=generic --disable-ffplay --disable-ffprobe --disable-ffserver --disable-asm --disable-doc --disable-devices --disable-pthreads --disable-w32threads --disable-network --disable-hwaccels --disable-parsers --disable-bsfs --disable-debug --disable-protocols --disable-indevs --disable-outdevs --enable-protocol=file --enable-libvpx --enable-gpl --extra-libs='/Users/bgrinstead/Sites/videoconverter.js/build/ffmpeg/../dist/lib/libx264.a /Users/bgrinstead/Sites/videoconverter.js/build/ffmpeg/../dist/lib/libvpx.a'
  libavutil      52. 66.100 / 52. 66.100
  libavcodec     55. 52.102 / 55. 52.102
  libavformat    55. 33.100 / 55. 33.100
  libavdevice    55. 10.100 / 55. 10.100
  libavfilter     4.  2.100 /  4.  2.100
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
[vp8 @ 0xed8370] Warning: not compiled with thread support, using thread emulation
Input #0, matroska,webm, from 'input.webm':
  Metadata:
    encoder         : QTmuxingAppLibWebM-0.0.1
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0(eng): Video: vp8, yuv420p, 1920x1080, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
[libx264 @ 0xed8f30] Warning: not compiled with thread support, using thread emulation
[libx264 @ 0xed8f30] using SAR=1/1
[libx264 @ 0xed8f30] using cpu capabilities: none!
missing function: madvise
-1ffmpeg-all-codecs.js:167:7
-1
uncaught exception: abort() at stackTrace@chrome://screencastify/content/resources/scripts/3rd/ffmpeg-all-codecs.js:1082:15

Input was:

            var converted_files = ffmpeg_run({
                arguments: [
                    '-i', 'input.webm',
                    '-vf', 'showinfo',
                    '-strict', '-2', 'output.mp4'
                ],
                files: [{ data:(new Uint8Array(rec.arrbuf)), name:'input.webm' }],
                TOTAL_MEMORY: 268435456
            });
Noitidart commented 8 years ago

I reproduced the issue. I uploaded my webm file in clone of your repo and changed it from the bunny.webm to my webm. So your demo works with my file. You can see the reproduction here - http://noitforks.github.io/videoconverter.js/demo/

Please run the mp4 conversions on it. You will see the error. Do you know what can be wrong with my webm file?

My webm file is here - https://github.com/NoitForks/videoconverter.js/blob/gh-pages/demo/Screencast%20-%20Jun%2013%2C%202016%201.01%20AM.webm

I edited the bunny webm out from terminal.js here - https://github.com/NoitForks/videoconverter.js/blob/gh-pages/demo/terminal.js#L45

geldrin commented 8 years ago

Try to comment out _madvise function inside of ffmpeg-all-codecs.js, and try again...

Noitidart commented 8 years ago

@geldrin Thanks sir for coming over from stack I'll try that right now

Noitidart commented 8 years ago

Haha @geldrin oh my gosh it worked. Doesn't this seem kind of bad though? Like it shouldn't be here no? Do you know why madvise is there. I'm trying to do ctrl+f it says it has 4 instances, but after finding first one my Sublime editor is crashing.