Kagami / ffmpeg.js

Port of FFmpeg with Emscripten
Other
3.24k stars 329 forks source link

'tools/tiny_ssim.wasm': No such file or directory #146

Closed oddengine closed 3 years ago

oddengine commented 3 years ago

Hello,

I'm trying to compile this wonderful project. I'm using docker. Even though I pulled the latest emsdk and libvpx projects, but still keep getting error as below and get no lucky, because I'm new in compiling.

--enable-shared is only supported on ELF; assuming this is OK
Creating makefiles for generic-gnu libs
Creating makefiles for generic-gnu tools
make: make -j
make[1]: Entering directory '/code/ffmpeg.js/build/libvpx'
    [CC] vpx_config.c.o
    [CREATE] vpx.pc
    [LD] libvpx.so.6.3.0
emcc: warning: linking a library with `-shared` will emit a static object file.  This is a form of emulation to support existing build systems.  If you want to build a runtime shared library use the SIDE_MODULE setting. [-Wemcc]
emcc: warning: ignoring unsupported linker flag: `-soname` [-Wlinkflags]
    [LN]      libvpx.so.6.3.0 libvpx.so
    [LN]      libvpx.so.6.3.0 libvpx.so.6
    [LN]      libvpx.so.6.3.0 libvpx.so.6.3
    [LD] tools/tiny_ssim
/code/emsdk/upstream/bin/llvm-objcopy: error: 'tools/tiny_ssim.wasm': 'tools/tiny_ssim.wasm': No such file or directory
Traceback (most recent call last):
  File "/code/emsdk/upstream/emscripten/emcc.py", line 3272, in <module>
    sys.exit(run(sys.argv))
  File "/code/emsdk/upstream/emscripten/emcc.py", line 2257, in run
    do_binaryen(target, options, wasm_target)
  File "/code/emsdk/upstream/emscripten/emcc.py", line 2687, in do_binaryen
    building.strip(wasm_target, wasm_target, debug=strip_debug, producers=strip_producers)
  File "/code/emsdk/upstream/emscripten/tools/building.py", line 1351, in strip
    run_process(cmd)
  File "/code/emsdk/upstream/emscripten/tools/shared.py", line 205, in run_process
    ret = subprocess.run(cmd, check=check, input=input, *args, **kw)
  File "/usr/local/lib/python3.7/subprocess.py", line 487, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/code/emsdk/upstream/bin/llvm-objcopy', 'tools/tiny_ssim.wasm', 'tools/tiny_ssim.wasm', '--remove-section=.debug*', '--remove-section=producers']' returned non-zero exit status 1.
make[2]: *** [/code/ffmpeg.js/build/libvpx/tools.mk:53: tools/tiny_ssim] Error 1
make[1]: *** [Makefile:17: .DEFAULT] Error 2
make[1]: Leaving directory '/code/ffmpeg.js/build/libvpx'
make: *** [Makefile:72: build/libvpx/dist/lib/libvpx.so] Error 2

Here below is my steps. Any help would be appreciate.

> cd D:\xxx\wasm

> docker run --rm -it -v D:\xxx\wasm:/code -w /code kagamihi/ffmpeg.js
> apt-get update
> apt-get install -y git python build-essential automake libtool pkg-config
> apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

> git clone https://github.com/emscripten-core/emsdk.git
> cd emsdk/
> ./emsdk install latest
> ./emsdk activate latest
> source ./emsdk_env.sh

> cd /usr/local/
> wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
> tar -xf Python-3.7.2.tgz
> cd Python-3.7.2
> ./configure && make && make install
> cd /usr/bin/
> rm -f python
> ln -s /usr/local/bin/python3.7 python
> ln -s /usr/local/bin/python3.7-config python-config

> git clone https://github.com/Kagami/ffmpeg.js.git --recurse-submodules
> cd /code/ffmpeg.js
> make