JavaScript で FFmpeg を使用したいと考えています。
videoconverter.js (https://github.com/bgrins/videoconverter.js) や ffmpeg.js (https://github.com/Kagami/ffmpeg.js) は既に試しておりますが、使用している FFmpeg のバージョンが2.0系と古く、今のiPhone や Android の動画形式(hevc, h.265) のエンコードができずにいます。
また、最新の FFmpeg 3.0 以上とコーデックを追加することで、上記形式のエンコードが JavaScript で可能であることは以下のサイトで試しております。
https://neo.idletime.tokyo/web/idleencoder_js/index.html
そのため、技術的には問題ないと思うのですが Emscripten の知識が足らず、 JavaScript で使えるまでに至っていない状態です。
idleencoder のサイトではソースコードを公開しておりますが、 情報が少なくコンパイルできていません。
そこで、 ffmpeg.js
, videoconverter.js
の Makefile
を参考にしまして以下のように作業を行いました。
terminal
1% git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg 2% cd ffmpeg 3% emconfigure ./configure --cc=emcc --ar=emar --ranlib=emranlib --prefix=$(pwd)/../dist --enable-cross-compile --target-os=none --arch=x86_32 --cpu=generic --disable-stripping --enable-shared --disable-programs --disable-asm --disable-doc --disable-devices --disable-pthreads --disable-w32threads --disable-network --disable-debug --disable-xlib --disable-zlib --disable-sdl2 --disable-iconv --disable-everything --enable-protocol=file --enable-decoder=hevc --enable-parser=hevc --enable-demuxer=hevc --enable-decoder=h264 --enable-parser=h264 --enable-demuxer=h264 4% emmake make -j4 5% emmake make install
上記コマンドを実行して dist ディレクトリに include/
lib/
share/
の3つのディレクトリが生成されました。
一方で、参考にした Makefile
ではこの時点で ffmpeg
というバイナリファイルが生成されているように見受けられましたが、 ffmpeg
バイナリファイルはみつかりませんでした。
https://github.com/Kagami/ffmpeg.js/blob/master/Makefile#L302
https://github.com/bgrins/videoconverter.js/blob/master/build/build_all_codecs.sh#L80 など
idleencoder のサイト(https://neo.idletime.tokyo/web/idleencoder_js/index.html) にも
ffmpegが作成されたらfinalというスクリプトがあるので
という一文があり、 ffmpeg
のバイナリファイルが生成されるのではと考えているのですが、依然としてわからずにいます。
どのようにして FFmpeg を JavaScript で実行できるところまで持っていくことができるでしょうか
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/12 15:05
2019/03/12 15:09
2019/03/12 15:16
2019/03/13 15:01 編集