Skip to content

Support: Video

Thibault Deckers edited this page Jul 16, 2023 · 2 revisions

With media_kit

Instructions

You can create your own builds for libmpv + FFmpeg + media_kit by:

  1. Fork https://github.com/media-kit/libmpv-android-video-build & enable GitHub actions.
  2. Modify the FFmpeg configure step, especially --enable-decoder, --enable-demuxer & --enable-parser.
  3. The GitHub actions will compile the project(s) & resulting binaries will be automatically uploaded as release & artifact.
  4. Remove media_kit_libs_android_video from pubspec.yaml.
  5. Bundle your *.jar(s) with your application by modifying build.gradle, something like this.

With fijkplayer

Aves plays videos thanks to FFmpeg, via the fijkplayer and ijkplayer projects. These projects are forked to customize the FFmpeg build configuration:

FFmpeg Build Configuration

External libraries:
openssl			xlib			zlib

External libraries providing hardware acceleration:
v4l2_m2m

Libraries:
avcodec			avformat		swresample
avfilter		avutil			swscale

Programs:

Enabled decoders:
aac			h264			pcm_s16le
aac_latm		hevc			pcm_u8
ac3			mjpeg			subrip
ac3_fixed		mp3			theora
ass			mp3adu			vorbis
eac3			mp3adufloat		vp3
flac			mp3float		vp6
flv			mp3on4			vp6a
h263			mp3on4float		vp6f
h263i			mpeg4			vp8
h263p			opus			vp9

Enabled encoders:
mjpeg			png

Enabled hwaccels:

Enabled parsers:
aac			h264			mpegvideo
aac_latm		hevc			opus
ac3			mpeg4video		vorbis
flac			mpegaudio		vp9
h263

Enabled demuxers:
aac			flac			mp3
ac3			flv			mpegps
asf			hevc			mpegts
asf_o			loas			mpegvideo
avi			m4v			ogg
concat			matroska		pcm_s16le
data			mjpeg			webm_dash_manifest
eac3			mov

Enabled muxers:
mov			mp4

Enabled protocols:
async			file			ijkmediadatasource
cache			ijkhttphook		ijksegment
concat			ijkio			ijktcphook
crypto			ijklongurl		pipe
data

Enabled filters:

Enabled bsfs:
aac_adtstoasc		h264_mp4toannexb	mpeg4_unpack_bframes
eac3_core		h264_redundant_pps	null
extract_extradata	hevc_metadata		vp9_raw_reorder
filter_units		hevc_mp4toannexb	vp9_superframe
h264_metadata		mpeg2_metadata		vp9_superframe_split

Enabled indevs:

Enabled outdevs:

License: LGPL version 2.1 or later

FFmpeg Library Versions

  • FFmpeg : ff4.0--ijk0.8.8--20211030--926
  • libavutil : 56.14.100
  • libavcodec : 58.18.100
  • libavformat : 58.12.100
  • libswscale : 5.1.100
  • libswresample: 3.1.100