FFmpeg + WebAssembly

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • OPS - Build and Run Open Source Unikernels
  • Scout APM - Less time debugging, more time building
  • GitHub repo FFmpeg

    Mirror of https://git.ffmpeg.org/ffmpeg.git

    FROM emscripten/emsdk:2.0.16 as build ARG FFMPEG_VERSION=4.3.2 ARG X264_VERSION=20170226-2245-stable ARG PREFIX=/opt/ffmpeg ARG MAKEFLAGS="-j4" # Build dependencies. RUN apt-get update && apt-get install -y autoconf libtool build-essential # Download and build x264. RUN cd /tmp && \ wget https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2 && \ tar xvfj x264-snapshot-${X264_VERSION}.tar.bz2 RUN cd /tmp/x264-snapshot-${X264_VERSION} && \ emconfigure ./configure \ --prefix=${PREFIX} \ --host=i686-gnu \ --enable-static \ --disable-cli \ --disable-asm \ --extra-cflags="-s USE_PTHREADS=1" RUN cd /tmp/x264-snapshot-${X264_VERSION} && \ emmake make && emmake make install # Download ffmpeg release source. RUN cd /tmp/ && \ wget http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \ tar zxf ffmpeg-${FFMPEG_VERSION}.tar.gz && rm ffmpeg-${FFMPEG_VERSION}.tar.gz ARG CFLAGS="-s USE_PTHREADS=1 -O3 -I${PREFIX}/include" ARG LDFLAGS="$CFLAGS -L${PREFIX}/lib -s INITIAL_MEMORY=33554432" # Configure and build FFmpeg with emscripten. # Disable all programs and only enable features we will use. # https://github.com/FFmpeg/FFmpeg/blob/master/configure RUN cd /tmp/ffmpeg-${FFMPEG_VERSION} && \ emconfigure ./configure \ --prefix=${PREFIX} \ --target-os=none \ --arch=x86_32 \ --enable-cross-compile \ --disable-debug \ --disable-x86asm \ --disable-inline-asm \ --disable-stripping \ --disable-programs \ --disable-doc \ --disable-all \ --enable-avcodec \ --enable-avformat \ --enable-avfilter \ --enable-avdevice \ --enable-avutil \ --enable-swresample \ --enable-postproc \ --enable-swscale \ --enable-filters \ --enable-protocol=file \ --enable-decoder=h264,aac,pcm_s16le \ --enable-demuxer=mov,matroska \ --enable-muxer=mp4 \ --enable-gpl \ --enable-libx264 \ --extra-cflags="$CFLAGS" \ --extra-cxxflags="$CFLAGS" \ --extra-ldflags="$LDFLAGS" \ --nm="llvm-nm -g" \ --ar=emar \ --as=llvm-as \ --ranlib=llvm-ranlib \ --cc=emcc \ --cxx=em++ \ --objcc=emcc \ --dep-cc=emcc RUN cd /tmp/ffmpeg-${FFMPEG_VERSION} && \ emmake make -j4 && \ emmake make install

  • GitHub repo ffmpeg.wasm

    FFmpeg for browser and node, powered by WebAssembly

    This has already been done before. You can check out ffmpeg.wasm for running the FFmpeg CLI in the browser environment.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • GitHub repo ffmpeg-libav-tutorial

    FFmpeg libav tutorial - learn how media works from basic to transmuxing, transcoding and more

    If you are not familiar with libav, ffmpeg-libav-tutorial is a great introduction.

  • GitHub repo ffmpeg-webassembly-example

    FFmpeg + WebAssembly

    Check out https://github.com/alfg/ffmpeg-webassembly-example for the full demo files in this guide.

  • GitHub repo ffprobe-wasm

    A Web-based FFProbe. Powered by FFmpeg, Vue and Web Assembly!

    I also have a more advanced example of using FFProbe via Wasm: https://github.com/alfg/ffprobe-wasm

  • GitHub repo libav-examples

    Collection of FFmpeg libav examples.

  • GitHub repo Express

    Fast, unopinionated, minimalist web framework for node.

    We can do this by running simple NodeJS server using Express, easily:

  • OPS

    OPS - Build and Run Open Source Unikernels. Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts