Door Player, Cross by ffmpeg and egui
Door player is cross-platform and simple, it is a good project for learning rust egui ffmpeg
Features:
# ffmpeg 7
sudo add-apt-repository ppa:ubuntuhandbook1/ffmpeg7
sudo apt update
sudo apt install libass-dev libavdevice-dev ffmpeg
note: if you want to downgrade to 6.0.
sudo apt install ppa-purge && sudo ppa-purge ppa:ubuntuhandbook1/ffmpeg7
sudo add-apt-repository ppa:ubuntuhandbook1/ffmpeg6
sudo apt update
sudo apt install libass-dev libavdevice-dev ffmpeg
# dependencies
sudo apt install librust-alsa-sys-dev
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg.exe install ffmpeg
set FFMPEG_DIR=C:/lang/vcpkg/installed/x64-windows
clone the ffmpeg cd ffmpeg [//]: # (// --enable-libass --enable-avfilter : add filter subtitles ) ./configure --enable-gpl --enable-static --enable-libass --enable-avfilter --enable-libx264 --enable-pic --enable-ffplay --enable-decoder=pcm* make -j16 && sudo make install && sudo make uninstall
the default fonts in egui is not support chinese, so get the free open fonts from web when builds get the download url from github url: github url: https://github.com/wordshub/free-font/blob/master/assets/font/%E4%B8%AD%E6%96%87/%E6%96%87%E6%B3%89%E9%A9%BF%E7%B3%BB%E5%88%97/%E6%96%87%E6%B3%89%E9%A9%BF%E5%BE%AE%E7%B1%B3%E9%BB%91.ttc rule: https://[github_user_id].github.io/[repo_name]/ , no master branch download url: https://wordshub.github.io/free-font/assets/font/%E4%B8%AD%E6%96%87/%E6%96%87%E6%B3%89%E9%A9%BF%E7%B3%BB%E5%88%97/%E6%96%87%E6%B3%89%E9%A9%BF%E6%AD%A3%E9%BB%91.ttc see: https://github.com/orgs/community/discussions/42655#discussioncomment-5669289 https://nvm-sh.github.io/nvm/blob/v0.39.5/install.sh
see Pure Rust media container and audio decoding library
egui-video(player) First version of door player is base on this project small-player ffmpeg-cpal-play-audio stainless-ffmpeg ffplay源码分析 ffplay源码分析4-音视频同步 FFplay视频同步分析—ffplay.c源码分析 ffplay ffmpeg ffmpeg播放器 学习如何使用 FFmpeg 打造自己的播放器 将音视频时钟同步封装成通用模块 FFmpeg 入门(5):视频同步 FFMPEG 硬件解码API介绍 ffmpeg 时基timebase、时间戳pts/dts、延时控制delay FFmpeg DTS、PTS和时间戳TIME_BASE详解