Compile ffmpeg/ffplay/ffprobe:
first download some packages with zypper or pkcon
git make
some of the following devel packages maybe not needed or some are missing, you’ll notice if configure shows some error(s)
opus-devel openssl-devel openjpeg-devel libvpx-devel libvorbis-devel libtheora-devel libpng-devel libogg-devel libmp3lame-devel libdrm-devel flac-devel SDL2-devel
download ffmpeg
cd /tmp
git clone --depth=1 https://github.com/FFmpeg/FFmpeg
cd FFmpeg
optional add patch for some touch controls
patch_add_some_more_touch_controls.targz (3.7 KB)
feel free to change if needed
apply patch to source
# patch copied to /tmp/FFmpeg
git apply patch_add_some_more_touch_controls.patch
configure (this is taken from default ffmpeg, you also can only use something like e.g. ./configure --prefix=/path/to/install --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-openssl)
./configure --prefix=/home/defaultuser/prefix --disable-debug --enable-pic --disable-doc --enable-muxers --enable-demuxers --enable-protocols --enable-network --enable-libfontconfig --enable-libfreetype --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-openssl --enable-encoder=',aac,ac3,alac,apng,ass,ayuv,bmp,ffv1,ffvhuff,flac,gif,huffyuv,ilbc,jpegls,jpeg2000,libaom,libaom_av1,libcodec2,libgsm,libilbc,libjxl,libmp3lame,libopenjpeg,libopus,libschroedinger,libtheora,libvorbis,libvpx_vp8,libvpx_vp9,libwebp,libwebp_anim,mjpeg,mpeg1video,mpeg2video,opus,pam,pbm,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcx,pgm,pgmyuv,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,tiff,v210,v308,v408,v410,vorbis,webvtt,xbm,xwd,y41p,yuv4,zlib,h264,mpeg4' --enable-decoder=',aac,ac3,alac,ansi,apng,ass,ayuv,bmp,dirac,exr,ffv1,ffvhuff,ffwavesynth,flac,gif,gsm,huffyuv,ilbc,jpeg2000,libaom,libaom_av1,libcodec2,libgsm,libilbc,libjxl,libopenjpeg,libopus,libschroedinger,libvorbis,libvpx_vp8,libvpx_vp9,mjpeg,mp1,mp1float,mp2,mp2float,mp3,mp3float,mpeg1video,mpeg2video,,opus,pam,pbm,pcm_alaw,pcm_bluray,pcm_dvd,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcx,pgm,pgmyuv,pgssub,pgx,png,ppm,rawvideo,sgi,srt,ssa,sunrast,targa,text,theora,tiff,v210,v210x,v308,v408,v410,vorbis,vp3,vp5,vp6,vp6a,vp6f,vp8,vp9,webp,webvtt,xbm,xwd,y41p,yuv4,zlib,,aac_latm,h264,mpeg4'
If you get warning like this you can either ignore or try to download devel packages
WARNING: Disabled libaom_av1_encoder because not all dependencies are satisfied: libaom
WARNING: Disabled libcodec2_encoder because not all dependencies are satisfied: libcodec2
WARNING: Disabled libgsm_encoder because not all dependencies are satisfied: libgsm
WARNING: Disabled libilbc_encoder because not all dependencies are satisfied: libilbc
WARNING: Disabled libjxl_encoder because not all dependencies are satisfied: libjxl libjxl_threads
WARNING: Disabled libwebp_anim_encoder because not all dependencies are satisfied: libwebp
WARNING: Disabled libwebp_encoder because not all dependencies are satisfied: libwebp
WARNING: Disabled libcodec2_decoder because not all dependencies are satisfied: libcodec2
WARNING: Disabled libgsm_decoder because not all dependencies are satisfied: libgsm
WARNING: Disabled libilbc_decoder because not all dependencies are satisfied: libilbc
WARNING: Disabled libjxl_decoder because not all dependencies are satisfied: libjxl libjxl_threads
WARNING: Disabled libaom_av1_decoder because not all dependencies are satisfied: libaom
(there is no package for libx264, you can download source and compile yourself if you need h264 encoding support)
compile and install to directory specifed with --prefix= (I usually just use ~/prefix)
you can add path to ~/.profile)
make -j6
make install
this will take some time
.desktop file for usage with e.g. file manager (.local/share/applications/ffplay.desktop):
[Desktop Entry]
Exec=/home/defaultuser/prefix/bin/ffplay -v quiet -fs -vf "null" -vf "transpose=1" -vf "transpose=1,transpose=1" -vf "transpose=2" %u
Icon=icon-launcher-mediaplayer
Name=FFPlay
MimeType=image/*;video/*;
Terminal=false
Type=Application
not sure what the mimetype for music files is, probably music/* ?
with above command rotation is either via bottom swipe (some scaling is applied) or double tap (only downscales if e.g. portrait video is rotated to landscape but not vice versa, remove multigesture if you dont need this. Also keyboard support is removed/commented, undo if you need this [but uncomment mouse stuff])
Also touch controls stay the same (portrait), if you want to switch if landscape is used you have to add/change this yourself (shouldnt be complicated)