sorry for my bad english !!!
first make a copy of your trixie os
XAUTHORITY=/home/spook/.Xauthority sudo dbus-launch piclonemost of comands for all rpi but sure for trixie
sudo apt install libfdk*
if its faild
git clone https://github.com/mstorsjo/fdk-aac
1. Für den Raspberry Pi 5 (64-Bit, Cortex-A76)
git clone https://github.com/mstorsjo/fdk-aac && cd fdk-aac && \
autoreconf -fiv && \
./configure \
--prefix=/usr/local \
--enable-shared \
--disable-static \
--host=aarch64-linux-gnu \
CFLAGS="-mcpu=cortex-a76 -O3 -pipe -ftree-vectorize" \
CXXFLAGS="-mcpu=cortex-a76 -O3 -pipe -ftree-vectorize" \
LDFLAGS="-Wl,-O1,--as-needed" && \
make -j$(nproc) && \
sudo make install && sudo ldconfig
1. Für den Raspberry Pi 5 (64-Bit, Cortex-A76)
git clone https://github.com/mstorsjo/fdk-aac && cd fdk-aac && \
autoreconf -fiv && \
./configure \
--prefix=/usr/local \
--enable-shared \
--disable-static \
--host=aarch64-linux-gnu \
CFLAGS="-mcpu=cortex-a72 -O3 -pipe -ftree-vectorize" \
CXXFLAGS="-mcpu=cortex-a72 -O3 -pipe -ftree-vectorize" \
LDFLAGS="-Wl,-O1,--as-needed" && \
make -j$(nproc) && \
sudo make install && sudo ldconfig
2. Für den Raspberry Pi 3 (32-Bit, Cortex-A53)
Hier aktivieren wir zusätzlich die NEON-Einheit (VFPv4), um Audio-Berechnungen in Hardware zu beschleunigen.
bash
sudo apt update && sudo apt install -y autoconf libtool [Debian Package Search](https://packages.debian.org) && \
git clone https://github.com/mstorsjo/fdk-aac && cd fdk-aac && \
autoreconf -fiv && \
cd fdk-aac && \
autoreconf -fiv && \
./configure \
--prefix=/usr/local \
--enable-shared \
--disable-static \
--host=arm-linux-gnueabihf \
CFLAGS="-mcpu=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -O3 -pipe" \
CXXFLAGS="-mcpu=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -O3 -pipe" && \
LDFLAGS="-Wl,-O1,--as-needed" && \
make -j4 && \
sudo make install && sudo ldconfig
wget http://deb.debian.org/debian/pool/non-free/f/fdk-aac/libfdk-aac2t64_2.0.3-1_armhf.deb
wget http://deb.debian.org/debian/pool/non-free/f/fdk-aac/libfdk-aac-dev_2.0.3-1_armhf.deb
sudo dpkg -i libfdk*
wge t http://deb.debian.org/debian/pool/non-free/f/fdk-aac/libfdk-aac-dev_2.0.3-1_arm64.deb
wget http://deb.debian.org/debian/pool/non-free/f/fdk-aac/libfdk-aac2t64_2.0.3-1_arm64.deb
sudo dpkg -i libfdk*
#########################################################
sudo nano /boot/firmware/cmdline.txt console=serial0,115200 console=tty1 root=PARTUUID=37b5fcd6-02 rootfstype=ext4 fsck.repair=yes rootwait net.ifnames=0 isolcpus=3isoliert 3 cpu for rpicam-vid isolcpus=3
sudo nano /etc/grouprender:x:992:user
pipewire:x:105:user
pulse:x:106:user
rtkit:x:117:spook######################################
sudo rm -r /etc/pipewire
rm -r .config/pipewire
rm -r .config/wireplumber
sudo mkdir /etc/pipewire
sudo mkdir /etc/pipewire/pipewire-pulse.conf.d
sudo mkdir /etc/pipewire/client.conf.d/
sudo mkdir /etc/pipewire/pipewire.conf.d/
sudo mkdir /etc/wireplumber
sudo mkdir /etc/wireplumber/wireplumber.conf.d/sudo nano /etc/wireplumber/wireplumber.conf.d/50-alsa-s16le.confmonitor.alsa.rules = [
{
matches = [
{
# Matcht alle Ausgänge
node.name = "~alsa_output.*"
},
{
# Matcht alle Eingänge
node.name = "~alsa_input.*"
}
]
actions = {
update-props = {
# Erzwingt S16LE für beide oben genannten Gruppen
audio.format = "S32LE"
}
}
}
]sudo nano /etc/pipewire/pipewire.conf.d/10-low-latency.confcontext.properties = {
default.clock.rate = 48000
default.clock.quantum = 1024
default.clock.min-quantum = 1024
default.clock.max-quantum = 1024
default.clock.allowed-rates = [ 44100 48000 88200 96000 ]
}
# Dies zwingt alle neuen Streams (inkl. rpicam-vid) auf S32LE
stream.properties = {
audio.format = "S16LE"
audio.rate = 48000
}sudo nano /etc/pipewire/client.conf.d/99-alsa-s16.confalsa.properties = {
audio.format = "S32LE"
}sudo nano /etc/enviromentPIPEWIRE_LATENCY=1024/48000nano .asoundrcpcm.!default {
type pipewire
}
ctl.!default {
type pipewire
}
`
``
# realtime change to this
```bash
sudo nano /etc/pipewire/pipewire.conf.d/10-realtime.confcontext.properties = {
default.clock.rate = 48000
default.clock.quantum = 256
default.clock.min-quantum = 256
default.clock.max-quantum = 256
default.clock.allowed-rates = [ 48000 ]
mem.allow-mlock = true
}
# Dies zwingt alle neuen Streams (inkl. rpicam-vid) auf S32LE
stream.properties = {
audio.format = "F32LE"
resample.quality = 10
}
context.modules = [
{ name = libpipewire-module-rt
args = {
nice.level = -15
rt.prio = 95
rt.time.soft = 200000
rt.time.hard = 200000
uclimit = true
}
}
]sudo nano /etc/enviromentPIPEWIRE_LATENCY=256/48000#############################################
sudo nano /etc/security/limits.d/99-realtime.conf user - rtprio 99
user - memlock unlimited
user - nice -20sudo nano /etc/groupsudo:x:27:spook
audio:x:29:spook
render:x:992:vnc,spook
_ssh:x:101:spook
spi:x:989:spook
i2c:x:987:spook
gpio:x:986:spook
pipewire:x:105:spook
pulse:x:106:spook
rtkit:x:117:spook################################
systemctl --user enable --now pipewire pipewire.socket wireplumber pipewire-pulsenano .bashrcon the endalias alsamixer='alsamixer -c 0'
alias amixer='amixer -c 0'
# PipeWire Aliase
alias pw='pw-cli'
alias ptop='pw-top'
alias plink='pw-link -i'
alias pmon='pw-mon'
# Unterdrückt die kosmetischen Fehlermeldungen beim Start von pw-cli
alias pw-cli='pw-cli info 0'pw-toppw-cli##################################################
sudo apt install cpuinfo
cpu-info
uname -a
####################################################
nano /boot/firmware/config.txt
64bit
arm_64bit=1
32bit
arm_64bit=0
##############################################################################################
sudo apt build-dep mpv ffmpeg && sudo apt update && sudo apt install -y \
build-essential pkg-config git \
libasound2-dev libsdl2-dev libgcrypt20-dev \
libfdk-aac*-dev libmp3lame-dev libopus-dev libx264-dev libdav1d-dev \
libdrm-dev libudev-dev libepoxy-dev libshaderc-dev \
libssl-dev libvulkan-dev libatomic1 vulkan-validationlayers vulkan-tools \
wayland-scanner++ wayland-utils waylandpp-dev libgbm-dev libdrm-dev libshaderc-dev libplacebo-dev libass-dev libmp3lame-dev libopus-dev libsoxr-dev libxml2-dev
git clone -b test/7.1.2/main --depth 1 https://github.com/jc-kynesim/rpi-ffmpeg.git
git clone -b pios/bookworm https://github.com/RPi-Distro/ffmpeg.git
git clone -b pios/trixie https://github.com/RPi-Distro/ffmpeg.git
chromium-browser --ozone-platform=wayland --enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,SkiaGraphite --ignore-gpu-blocklist --enable-gpu-rasterizationgit clone -b test/7.1.2/main --depth 1 https://github.com/jc-kynesim/rpi-ffmpeg.git ~/rpi-ffmpeg
cd ~/rpi-ffmpeg || exit
PKG_CONFIG_PATH="/usr/lib/aarch64-linux-gnu/pkgconfig" \
./configure --prefix=/usr \
--libdir=/usr/lib/aarch64-linux-gnu \
--incdir=/usr/include/aarch64-linux-gnu \
--extra-version="ultra-pi5-ULTIMATE-VULKAN" \
--arch=aarch64 --target-os=linux --cpu=cortex-a76 \
--extra-cflags='-I/usr/include/libdrm -I/usr/include/gbm -I/usr/include/vulkan -mcpu=cortex-a76+crypto -O3 -pipe -ftree-vectorize -flto -Wno-stringop-overflow' \
--extra-ldflags='-L/usr/lib/aarch64-linux-gnu -lgbm -ldrm -latomic -Wl,-O3 -Wl,-rpath,/usr/lib/aarch64-linux-gnu -Wl,--as-needed -flto' \
--extra-libs='-Wl,--start-group -lshaderc_combined -lglslang -lMachineIndependent -lGenericCodeGen -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -Wl,--end-group -lplacebo -lvulkan -lgbm -ldrm -lepoxy -lEGL -lGLESv2 -lfftw3 -lgnutls -lxml2 -lfdk-aac -lmp3lame -lFLAC -lopus -lass -lsoxr -lz -lsrt -ldvdnav -lstdc++ -lpthread -lm -lrt -ldl' \
--disable-everything --disable-hwaccels --enable-libdvdnav --enable-libdvdread \
--enable-ffmpeg --enable-ffprobe --disable-ffplay --enable-shared --disable-static --disable-debug --enable-stripping --enable-hardcoded-tables --enable-pic --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-lto --enable-avcodec --enable-avformat --enable-avfilter --enable-swresample --enable-swscale --enable-avdevice \
--enable-libxml2 --enable-v4l2-m2m --enable-v4l2-request --enable-sand --enable-libdrm --enable-epoxy --enable-libudev --enable-vout-egl --enable-vout-drm --enable-opengl --enable-vulkan --enable-libshaderc --enable-libplacebo \
--enable-hwaccel=hevc_v4l2request --enable-hwaccel=av1_vulkan --enable-hwaccel=h264_vulkan --enable-hwaccel=hevc_vulkan \
--enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libsrt --enable-libsoxr --enable-libfreetype --enable-libharfbuzz --enable-libfribidi --enable-ladspa --enable-lv2 --enable-librubberband --enable-alsa --disable-libpulse --enable-libjack --enable-network --enable-gnutls --enable-gcrypt --enable-asm --enable-inline-asm --enable-neon --enable-runtime-cpudetect \
--enable-protocol='pipe,file,fd,tcp,udp,rtp,rtsp,http,https,tls,rtmp,rtmpt,rtmpe,rtmps,ffrtmpcrypt,hls,dash,libsrt,unix,cache,crypto,concat' \
--enable-bsf='aac_adtstoasc,av1_frame_merge,av1_frame_split,av1_metadata,dca_core,extract_extradata,h264_metadata,h264_mp4toannexb,hevc_metadata,hevc_mp4toannexb,mjpeg2jpeg,mpeg2_metadata,mpeg4_unpack_bframes,null,opus_metadata,pcm_rechunk,truehd_core,vp9_metadata,vp9_superframe' \
--enable-filter='firequalizer,realtime,latency,colorspace,colormatrix,colorlevels,scale_v4l2m2m,deinterlace_v4l2m2m,vulkan,vulkan_filter,libplacebo,hwmap,hwupload,hwdownload,scale_vulkan,flip_vulkan,hflip_vulkan,vflip_vulkan,transpose_vulkan,chromaber_vulkan,color_vulkan,gblur_vulkan,nlmeans_vulkan,overlay_vulkan,xfade_vulkan,bwdif_vulkan,scale,fps,setdar,settb,setpts,asettb,asetpts,concat,aresample,aformat,volume,loudnorm,equalizer,bass,treble,crystalizer,ladspa,lv2,rubberband,afifo,anull,asplit,amix,anequalizer,surround,stereowiden,overlay,drawtext,pad,pan,yadif,crop,null,aevalsrc,smptebars,testsrc,testsrc2' \
--enable-decoder='wavpack,h264_vulkan,hevc_vulkan,wrapped_avframe,libfdk_aac,h263_v4l2m2m,h264_v4l2m2m,hevc_v4l2m2m,mpeg1_v4l2m2m,mpeg2_v4l2m2m,mpeg4_v4l2m2m,vc1_v4l2m2m,vp8_v4l2m2m,vp9_v4l2m2m,hevc_v4l2request,h264,hevc,mpeg1video,mpeg2video,mpeg4,mjpeg,h263,h263p,opus,aac,ac3,eac3,mp3,mpegaudio,flac,vorbis,ass,srt,pcm_bluray,pcm_dvd,pcm_f16le,pcm_f24le,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_lxf,pcm_mulaw,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24daud,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s64be,pcm_s64le,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcm_vidc,h263dsp,mpegvideodec,qpeldsp,mov_text,dvdsub,dvbsub,rawvideo,adpcm_ms,adpcm_ima_wav,adpcm_ima_qt' \
--enable-encoder='h264_vulkan,hevc_vulkan,wrapped_avframe,libfdk_aac,h263_v4l2m2m,h264_v4l2m2m,hevc_v4l2m2m,mpeg4_v4l2m2m,vp8_v4l2m2m,libmp3lame,wavpack,libopus,flac,ass,srt,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_s24daud,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s64be,pcm_s64le,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcm_vidc,mov_text,rawvideo' \
--enable-demuxer='wavpack,aac,ac3,ac4,adpcm_ima_qt,adpcm_ima_wav,adpcm_ms,aiff,asf,asf_o,av1,avi,caf,concat,dash,dts,dtshd,dv,dvbsub,dvdvideo,eac3,flac,flv,h264,hevc,hls,image2,image2pipe,image_bmp_pipe,image_jpeg_pipe,image_png_pipe,image_webp_pipe,matroska,mjpeg,mov,mp3,mpegps,mpegts,mpegvideo,null,ogg,opus,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32be,pcm_s32le,pcm_s8,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcm_vidc,rawvideo,rm,rtp,rtsp,sdp,srt,truehd,vobsub,wav,webm_dash_manifest,yuv4mpegpipe' \
--enable-muxer='wavpack,aac,ac3,adts,adx,aiff,amr,apng,asf,ass,av1,avi,caf,dash,dts,dv,dvd,eac3,f4v,flac,flv,g722,gif,h264,hevc,hls,image2,ismv,matroska,matroska_audio,mjpeg,mkvtimestamp_v2,mov,mp2,mp3,mp4,mpeg1system,mpeg1vcd,mpeg1video,mpeg2dvd,mpeg2svcd,mpeg2video,mpeg2vob,mpegts,mpjpeg,null,ogg,oma,opus,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32be,pcm_s32le,pcm_s8,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcm_vidc,psp,rawvideo,rtmp,rtmpt,rtp,rtp_mpegts,rtsp,sap,segment,smoothstreaming,spdif,srt,swf,tee,truehd,tta,vc1,wav,webm,webm_chunk,webm_dash_manifest,webp,webvtt,yuv4mpegpipe' \
--enable-parser='dvd_nav,webp,vp8,vp9,vc1,aac_latm,aac,ac3,eac3,dca,mpegaudio,mp3,vorbis,opus,flac,h264,hevc,mpegvideo,mpeg4video,mjpeg,h263,mpeg1video,av1' \
--enable-indev='v4l2,alsa,jack,kmsgrab,lavfi' \
--enable-outdev='v4l2,alsa,opengl,vout_drm,vout_egl' \
--enable-xlib --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-sdl2 --disable-sndio \
--disable-amf --disable-vdpau --disable-vaapi --disable-cuda-llvm --disable-cuvid --disable-nvenc --disable-nvdec --disable-libnpp --disable-cuda \
--disable-cuda-nvcc --disable-cuda-sdk --disable-ffnvcodec --disable-libx264 --disable-libx265 --disable-omx --disable-omx-rpi --disable-mmal \
--disable-indev=pulse --disable-outdev=pulse && make -j2 && sudo make install
# Strippen für minimale Dateigröße
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavcode*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavdevic*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavfilte*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavforma*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavutil*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libpostpro*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libswresampl*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libswscale*
echo "Fertig! Installierte Größe:"
ls -l /usr/lib/aarch64-linux-gnu/libav* /usr/lib/aarch64-linux-gnu/libsw* /usr/lib/aarch64-linux-gnu/libpostproc* | awk '{sum += $5} END {print sum / 1024 / 1024 " MB"}'
git clone -b test/7.1.2/main --depth 1 https://github.com/jc-kynesim/rpi-ffmpeg.git ~/rpi-ffmpeg
cd ~/rpi-ffmpeg
PKG_CONFIG_PATH="/usr/lib/aarch64-linux-gnu/pkgconfig" \
./configure --prefix=/usr \
--libdir=/usr/lib/aarch64-linux-gnu \
--incdir=/usr/include/aarch64-linux-gnu \
--extra-version="ultra-pi4-ULTIMATE-VULKAN" \
--arch=aarch64 --target-os=linux --cpu=cortex-a72 \
--extra-cflags='-I/usr/include/libdrm -I/usr/include/gbm -I/usr/include/vulkan -mcpu=cortex-a72+crypto -O3 -pipe -ftree-vectorize -flto -Wno-stringop-overflow' \
--extra-ldflags='-L/usr/lib/aarch64-linux-gnu -lgbm -ldrm -latomic -Wl,-O3 -Wl,-rpath,/usr/lib/aarch64-linux-gnu -Wl,--as-needed -flto' \
--extra-libs='-Wl,--start-group -lshaderc_combined -lglslang -lMachineIndependent -lGenericCodeGen -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -Wl,--end-group -lplacebo -lvulkan -lgbm -ldrm -lepoxy -lEGL -lGLESv2 -lfftw3 -lgnutls -lxml2 -lfdk-aac -lmp3lame -lFLAC -lopus -lass -lsoxr -lz -lsrt -ldvdnav -lstdc++ -lpthread -lm -lrt -ldl' \
--disable-everything --disable-hwaccels --enable-libdvdnav --enable-libdvdread \
--enable-ffmpeg --enable-ffprobe --disable-ffplay --enable-shared --disable-static --disable-debug --enable-stripping --enable-hardcoded-tables --enable-pic --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-lto --enable-avcodec --enable-avformat --enable-avfilter --enable-swresample --enable-swscale --enable-avdevice \
--enable-libxml2 --enable-v4l2-m2m --enable-v4l2-request --enable-sand --enable-libdrm --enable-epoxy --enable-libudev --enable-vout-egl --enable-vout-drm --enable-opengl --enable-vulkan --enable-libshaderc --enable-libplacebo \
--enable-hwaccel=hevc_v4l2request --enable-hwaccel=av1_vulkan --enable-hwaccel=h264_vulkan --enable-hwaccel=hevc_vulkan \
--enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libsrt --enable-libsoxr --enable-libfreetype --enable-libharfbuzz --enable-libfribidi --enable-ladspa --enable-lv2 --enable-librubberband --enable-alsa --disable-libpulse --enable-libjack --enable-network --enable-gnutls --enable-gcrypt --enable-asm --enable-inline-asm --enable-neon --enable-runtime-cpudetect \
--enable-protocol='pipe,file,fd,tcp,udp,rtp,rtsp,http,https,tls,rtmp,rtmpt,rtmpe,rtmps,ffrtmpcrypt,hls,dash,libsrt,unix,cache,crypto,concat' \
--enable-bsf='aac_adtstoasc,av1_frame_merge,av1_frame_split,av1_metadata,dca_core,extract_extradata,h264_metadata,h264_mp4toannexb,hevc_metadata,hevc_mp4toannexb,mjpeg2jpeg,mpeg2_metadata,mpeg4_unpack_bframes,null,opus_metadata,pcm_rechunk,truehd_core,vp9_metadata,vp9_superframe' \
--enable-filter='firequalizer,realtime,latency,colorspace,colormatrix,colorlevels,scale_v4l2m2m,deinterlace_v4l2m2m,vulkan,vulkan_filter,libplacebo,hwmap,hwupload,hwdownload,scale_vulkan,flip_vulkan,hflip_vulkan,vflip_vulkan,transpose_vulkan,chromaber_vulkan,color_vulkan,gblur_vulkan,nlmeans_vulkan,overlay_vulkan,xfade_vulkan,bwdif_vulkan,scale,fps,setdar,settb,setpts,asettb,asetpts,concat,aresample,aformat,volume,loudnorm,equalizer,bass,treble,crystalizer,ladspa,lv2,rubberband,afifo,anull,asplit,amix,anequalizer,surround,stereowiden,overlay,drawtext,pad,pan,yadif,crop,null,aevalsrc,smptebars,testsrc,testsrc2' \
--enable-decoder='wavpack,h264_vulkan,hevc_vulkan,wrapped_avframe,libfdk_aac,h263_v4l2m2m,h264_v4l2m2m,hevc_v4l2m2m,mpeg1_v4l2m2m,mpeg2_v4l2m2m,mpeg4_v4l2m2m,vc1_v4l2m2m,vp8_v4l2m2m,vp9_v4l2m2m,hevc_v4l2request,h264,hevc,mpeg1video,mpeg2video,mpeg4,mjpeg,h263,h263p,opus,aac,ac3,eac3,mp3,mpegaudio,flac,vorbis,ass,srt,pcm_bluray,pcm_dvd,pcm_f16le,pcm_f24le,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_lxf,pcm_mulaw,pcm_s16be,pcm_s16be_planar,pcm_s16le,pcm_s16le_planar,pcm_s24be,pcm_s24daud,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s64be,pcm_s64le,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcm_vidc,h263dsp,mpegvideodec,qpeldsp,mov_text,dvdsub,dvbsub,rawvideo,adpcm_ms,adpcm_ima_wav,adpcm_ima_qt' \
--enable-encoder='h264_vulkan,hevc_vulkan,wrapped_avframe,libfdk_aac,h263_v4l2m2m,h264_v4l2m2m,hevc_v4l2m2m,mpeg4_v4l2m2m,vp8_v4l2m2m,libmp3lame,wavpack,libopus,flac,ass,srt,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_s24daud,pcm_s24le,pcm_s24le_planar,pcm_s32be,pcm_s32le,pcm_s32le_planar,pcm_s64be,pcm_s64le,pcm_s8,pcm_s8_planar,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcm_vidc,mov_text,rawvideo' \
--enable-demuxer='wavpack,aac,ac3,ac4,adpcm_ima_qt,adpcm_ima_wav,adpcm_ms,aiff,asf,asf_o,av1,avi,caf,concat,dash,dts,dtshd,dv,dvbsub,dvdvideo,eac3,flac,flv,h264,hevc,hls,image2,image2pipe,image_bmp_pipe,image_jpeg_pipe,image_png_pipe,image_webp_pipe,matroska,mjpeg,mov,mp3,mpegps,mpegts,mpegvideo,null,ogg,opus,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32be,pcm_s32le,pcm_s8,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcm_vidc,rawvideo,rm,rtp,rtsp,sdp,srt,truehd,vobsub,wav,webm_dash_manifest,yuv4mpegpipe' \
--enable-muxer='wavpack,aac,ac3,adts,adx,aiff,amr,apng,asf,ass,av1,avi,caf,dash,dts,dv,dvd,eac3,f4v,flac,flv,g722,gif,h264,hevc,hls,image2,ismv,matroska,matroska_audio,mjpeg,mkvtimestamp_v2,mov,mp2,mp3,mp4,mpeg1system,mpeg1vcd,mpeg1video,mpeg2dvd,mpeg2svcd,mpeg2video,mpeg2vob,mpegts,mpjpeg,null,ogg,oma,opus,pcm_alaw,pcm_f32be,pcm_f32le,pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be,pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32be,pcm_s32le,pcm_s8,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le,pcm_u8,pcm_vidc,psp,rawvideo,rtmp,rtmpt,rtp,rtp_mpegts,rtsp,sap,segment,smoothstreaming,spdif,srt,swf,tee,truehd,tta,vc1,wav,webm,webm_chunk,webm_dash_manifest,webp,webvtt,yuv4mpegpipe' \
--enable-parser='dvd_nav,webp,vp8,vp9,vc1,aac_latm,aac,ac3,eac3,dca,mpegaudio,mp3,vorbis,opus,flac,h264,hevc,mpegvideo,mpeg4video,mjpeg,h263,mpeg1video,av1' \
--enable-indev='v4l2,alsa,jack,kmsgrab,lavfi' \
--enable-outdev='v4l2,alsa,opengl,vout_drm,vout_egl' \
--enable-xlib --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-sdl2 --disable-sndio \
--disable-amf --disable-vdpau --disable-vaapi --disable-cuda-llvm --disable-cuvid --disable-nvenc --disable-nvdec --disable-libnpp --disable-cuda \
--disable-cuda-nvcc --disable-cuda-sdk --disable-ffnvcodec --disable-libx264 --disable-libx265 --disable-omx --disable-omx-rpi --disable-mmal \
--disable-indev=pulse --disable-outdev=pulse && make -j2 && sudo make install
# Strippen für minimale Dateigröße
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavcode*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavdevic*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavfilte*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavforma*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavutil*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libpostpro*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libswresampl*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libswscale*
echo "Fertig! Installierte Größe:"
ls -l /usr/lib/aarch64-linux-gnu/libav* /usr/lib/aarch64-linux-gnu/libsw* /usr/lib/aarch64-linux-gnu/libpostproc* | awk '{sum += $5} END {print sum / 1024 / 1024 " MB"}'
EOF
chmod +x bin/build-ffmpeg-final-rpi-4.sh# minimal 6MB build size
cat << 'EOF' > bin/build-ffmpeg-final-rpi-3.sh
#!/bin/bash
# FFmpeg Build-Skript für RPi5 (Ultra-Minimal / Vulkan & V4L2)
# Alte Quellen entfernen
sudo rm -rf ~/rpi-ffmpeg
# Repository klonen
git clone -b test/7.1.2/main --depth 1 https://github.com/jc-kynesim/rpi-ffmpeg.git ~/rpi-ffmpeg
cd ~/rpi-ffmpeg || exit
TMPDIR=/home/spook/tmp PKG_CONFIG_PATH="/usr/lib/arm-linux-gnueabihf/pkgconfig" \
./configure \
--prefix=/usr \
--libdir=/usr/lib/arm-linux-gnueabihf \
--incdir=/usr/include/arm-linux-gnueabihf \
--extra-version=ultra-pi3-armhf-jc-final-minimal \
--arch=arm --target-os=linux --cpu=cortex-a53 \
--fatal-warnings \
--extra-cflags='-I/usr/include/libdrm -I/usr/include/gbm -mcpu=cortex-a53+crypto -O2 -pipe -ftree-vectorize -flto -Wno-stringop-overflow' \
--extra-ldflags='-L/usr/lib/arm-linux-gnueabihf -lgbm -ldrm -latomic -Wl,-O2 -Wl,-rpath,/usr/lib/arm-linux-gnueabihf -Wl,--as-needed -flto -lstdc++' \
--extra-libs='-L/usr/lib/arm-linux-gnueabihf -lpthread -Wl,-O2 -lm -lrt -ldl -lasound -lstdc++ -ljack -ldrm -lgbm -lgnutls -lgcrypt -lgpg-error -lxml2 -lfdk-aac -lFLAC -lopus -lass -lsoxr -lfreetype -lharfbuzz -lfribidi -lrubberband' \
--disable-everything \
--disable-hwaccels \
--enable-ffmpeg --enable-ffprobe --disable-ffplay \
--enable-shared --disable-static \
--disable-debug --enable-stripping \
--enable-hardcoded-tables --enable-pic --enable-pthreads \
--enable-gpl --enable-version3 --enable-nonfree --enable-lto \
--enable-avcodec --enable-avformat --enable-avfilter --enable-swresample --enable-swscale --enable-avdevice \
--enable-libxml2 --enable-v4l2-m2m --enable-v4l2-request --enable-sand --enable-libdrm --enable-epoxy --enable-libudev \
--enable-opengl --disable-vulkan --disable-libshaderc --disable-libplacebo \
--enable-hwaccel=hevc_v4l2request \
--enable-libass --enable-libfdk-aac --enable-libopus --enable-libsoxr --enable-libfreetype --enable-libharfbuzz --enable-libfribidi \
--enable-ladspa --enable-lv2 --enable-librubberband --enable-alsa --disable-libpulse --enable-libjack \
--enable-network --enable-gnutls --enable-gcrypt --enable-asm --enable-inline-asm --enable-neon --enable-runtime-cpudetect \
--enable-protocol='pipe,file,fd,tcp,udp,rtp,rtsp,tls,rtmp,rtmpt,rtmpe,rtmps,ffrtmpcrypt,hls,dash,srt,unix,cache,crypto,concat' \
--enable-bsf='mpeg2_metadata,hevc_metadata,h264_metadata,h264_mp4toannexb,hevc_mp4toannexb,mpeg4_unpack_bframes,aac_adtstoasc,opus_metadata,extract_extradata,null' \
--enable-filter='firequalizer,realtime,latency,deinterlace_v4l2m2m,scale_v4l2m2m,format,scale,fps,setdar,settb,setpts,asettb,asetpts,concat,aresample,aformat,volume,loudnorm,equalizer,bass,treble,crystalizer,ladspa,lv2,rubberband,afade' \
--enable-decoder='libfdk_aac,h263_v4l2m2m,h264_v4l2m2m,hevc_v4l2m2m,mpeg1_v4l2m2m,mpeg2_v4l2m2m,mpeg4_v4l2m2m,hevc_v4l2request,opus,aac,ac3,eac3,mpegaudio,flac,vorbis,ass,srt,pcm_s16le,pcm_s24le,pcm_s32le,rawvideo,adpcm_ms,adpcm_ima_wav' \
--enable-encoder='h263_v4l2m2m,h264_v4l2m2m,hevc_v4l2m2m,libfdk_aac,aac,libopus,flac,ass,srt,pcm_s16le,pcm_s24le,pcm_s32le,rawvideo' \
--enable-demuxer='id3v1,id3v2,matroska,matroska_audio,mpegts,mov,flac,wav,ogg,aac,avi,h264,hevc,rtsp,sdp,rtp,rtmp,hls,dash,mjpeg,image2,concat,rawvideo' \
--enable-muxer='yuv4mpegpipe,adts,matroska,matroska_audio,mp4,mov,avi,flac,wav,opus,ogg,rtp,rtmp,rtsp,hls,dash,mpegts,image2,rawvideo,null,webm_dash_manifest' \
--enable-parser='dca,ac3,eac3,h264,hevc,mjpeg,mpegvideo,mpeg4video,mpegaudio,aac,opus,flac,vorbis,h263' \
--enable-indev='v4l2,alsa,jack,kmsgrab,lavfi' \
--enable-outdev='v4l2,alsa,opengl,vout_drm,vout_egl' \
--enable-xlib \
--disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages \
--disable-sdl2 --disable-sndio --disable-indev=pulse --disable-outdev=pulse,xv \
--disable-amf --disable-vdpau --disable-vaapi --disable-cuda-llvm --disable-ffnvcodec --disable-cuvid --disable-nvenc --disable-nvdec --disable-libnpp --disable-cuda --disable-cuda-nvcc --disable-omx --disable-omx-rpi --disable-mmal
make -j2
sudo make install
# Strippen für minimale Dateigröße
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavcode*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavdevic*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavfilte*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavforma*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libavutil*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libpostpro*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libswresampl*
sudo strip --strip-unneeded /usr/lib/aarch64-linux-gnu/libswscale*
echo "Fertig! Installierte Größe:"
ls -l /usr/lib/arm-linux-gnueabihf/libav* /usr/lib/arm-linux-gnueabihf/libsw* /usr/lib/arm-linux-gnueabihf/libpostproc* | awk '{sum += $5} END {print sum / 1024 / 1024 " MB"}'
EOF
chmod +x bin/build-ffmpeg-final-rpi-3.shgit clone --depth 1 https://github.com/mpv-player/mpv.git
cd mpv
meson setup build \
--prefix=/usr \
--buildtype=release \
-Dc_args='-mcpu=cortex-a76+crypto -O3 -pipe -ftree-vectorize -flto -Wno-stringop-overflow' \
-Dcpp_args='-mcpu=cortex-a76+crypto -O3 -pipe -ftree-vectorize -flto -Wno-stringop-overflow' \
-Dc_link_args='-L/usr/lib/aarch64-linux-gnu -latomic -Wl,-O3,--as-needed -flto' \
-Dcpp_link_args='-L/usr/lib/aarch64-linux-gnu -latomic -Wl,-O3,--as-needed -flto -lstdc++' \
-Dwayland=enabled \
-Ddmabuf-wayland=enabled \
-Dvulkan=enabled \
-Dshaderc=disabled \
-Ddrm=enabled \
-Dgbm=enabled \
-Degl-wayland=enabled \
-Degl-drm=enabled \
-Dgl=enabled \
-Dalsa=enabled \
-Dpipewire=enabled \
-Dpulse=disabled \
-Dx11=disabled \
-Dvaapi=disabled \
-Dvdpau=disabled \
-Dvdpau-gl-x11=disabled \
-Damf=disabled \
-Dandroid-media-ndk=disabled \
-Dmacos-11-features=disabled \
-Dmacos-touchbar=disabled \
-Dswift-build=disabled \
-Dwin32-smtc=disabled \
-Dd3d11=disabled \
-Ddirect3d=disabled \
-Dsdl2-video=disabled \
-Dsdl2-audio=disabled \
-Dopenal=disabled \
-Dmanpage-build=disabled \
-Dhtml-build=disabled -Dlibmpv=true
sudo meson install -C buildgit clone --depth 1 https://github.com/mpv-player/mpv.git
cd mpv
meson setup build \
--prefix=/usr \
--buildtype=release \
-Dc_args='-mcpu=cortex-a72+crypto -O3 -pipe -ftree-vectorize -flto -Wno-stringop-overflow' \
-Dcpp_args='-mcpu=cortex-a72+crypto -O3 -pipe -ftree-vectorize -flto -Wno-stringop-overflow' \
-Dc_link_args='-L/usr/lib/aarch64-linux-gnu -latomic -Wl,-O3,--as-needed -flto' \
-Dcpp_link_args='-L/usr/lib/aarch64-linux-gnu -latomic -Wl,-O3,--as-needed -flto -lstdc++' \
-Dwayland=enabled \
-Ddmabuf-wayland=enabled \
-Dvulkan=enabled \
-Dshaderc=disabled \
-Ddrm=enabled \
-Dgbm=enabled \
-Degl-wayland=enabled \
-Degl-drm=enabled \
-Dgl=enabled \
-Dalsa=enabled \
-Dpipewire=enabled \
-Dpulse=disabled \
-Dx11=disabled \
-Dvaapi=disabled \
-Dvdpau=disabled \
-Dvdpau-gl-x11=disabled \
-Damf=disabled \
-Dandroid-media-ndk=disabled \
-Dmacos-11-features=disabled \
-Dmacos-touchbar=disabled \
-Dswift-build=disabled \
-Dwin32-smtc=disabled \
-Dd3d11=disabled \
-Ddirect3d=disabled \
-Dsdl2-video=disabled \
-Dsdl2-audio=disabled \
-Dopenal=disabled \
-Dmanpage-build=disabled \
-Dhtml-build=disabled -Dlibmpv=truegit clone --depth 1 https://github.com/mpv-player/mpv.git
cd mpv
meson setup build \
--prefix=/usr \
--buildtype=release \
-Dc_args='-mcpu=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -O2 -pipe -ftree-vectorize -fomit-frame-pointer -flto -Wno-stringop-overflow' \
-Dcpp_args='-mcpu=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -O2 -pipe -ftree-vectorize -fomit-frame-pointer -flto -Wno-stringop-overflow' \
-Dc_link_args='-L/usr/lib/arm-linux-gnueabihf -latomic -Wl,-O2,--as-needed -flto' \
-Dcpp_link_args='-L/usr/lib/arm-linux-gnueabihf -latomic -Wl,-O2,--as-needed -flto -lstdc++' \
-Dlibmpv=true \
-Dwayland=enabled \
-Ddmabuf-wayland=enabled \
-Dpipewire=enabled \
-Dalsa=enabled \
-Dvulkan=enabled \
-Dshaderc=disabled \
-Ddrm=enabled \
-Dgbm=enabled \
-Degl-drm=enabled \
-Degl-wayland=enabled \
-Dvaapi=disabled \
-Dvdpau=disabled \
-Dcuda-hwaccel=disabled \#########################
nano .config/mpv/mpv.conf# opengl
gpu-context=wayland
gpu-api=opengl
opengl-glfinish=yes
vo=gpu
# vulkan
gpu-context=waylandvk
gpu-api=vulkan
vo=gpu-next
wayland-configure-bounds=yes
background=none
hwdec=drm
hwdec-codecs=hevc
hwdec-image-format=drm_prime
gpu-hwdec-interop=drmprime
hwdec-extra-frames=2
glsl-shader="~~/shaders/FSR.glsl"
# Hochwertiges Upscaling für den Pi 5 (Cortex-A76)
#scale=ewa_lanczos
#cscale=mitchell
framedrop=decoder+vo
keep-open=no
cache=no
volume=80
ao=pipewire
af=lavfi=[crystalizer=i=1,bass=g=3],scaletempo2
volume-max=150
audio-channels=stereo
#autofit=1910
autofit=50%x50%
background=none #very important for vulkan fullscreen
#geometry=1920x1080+0+0
vulkan-swap-mode=fifo
swapchain-depth=3
#vulkan-async-compute=no
#vulkan-async-transfer=no
gpu-shader-cache=yes
#wayland-app-id=mpv-fullscreen
alang=de,deu,ger,en,eng
slang=de,deu,ger,en,eng
sid=1
aid=1
background=none
gpu-context=waylandvk
gpu-api=vulkan
vo=gpu-next
hwdec=drm
hwdec-codecs=hevc
hwdec-image-format=drm_prime
gpu-hwdec-interop=drmprime
drm-vrr-enabled=auto
dither=no
scale=bilinear
background=nonenano .config/mpv/shaders/FSR.glsl// FidelityFX Super Resolution v1.0.2 für mpv
// Portiert von agyild
//!PARAM SHARPENING
//!TYPE float
//!MINIMUM 0.0
0.2
//!HOOK LUMA
//!BIND HOOKED
//!SAVE EASUTEX
//!DESC FidelityFX Super Resolution v1.0.2 (EASU)
//!WHEN OUTPUT.w OUTPUT.h * LUMA.w LUMA.h * / 1.0 >
vec4 hook() {
return HOOKED_tex(HOOKED_pos);
}
//!HOOK CANvAS
//!BIND HOOKED
//!BIND EASUTEX
//!DESC FidelityFX Super Resolution v1.0.2 (RCAS)
#define FSR_RCAS_LIMIT (0.25 - 1.0/16.0)
vec4 hook() {
vec2 pos = HOOKED_pos;
vec2 size = HOOKED_size;
// RCAS Implementation
vec4 b = EASUTEX_texOff(pos, ivec2(0, -1));
vec4 d = EASUTEX_texOff(pos, ivec2(-1, 0));
vec4 e = EASUTEX_tex(pos);
vec4 f = EASUTEX_texOff(pos, ivec2(1, 0));
vec4 h = EASUTEX_texOff(pos, ivec2(0, 1));
float bL = dot(b.rgb, vec3(0.299, 0.587, 0.114));
float dL = dot(d.rgb, vec3(0.299, 0.587, 0.114));
float eL = dot(e.rgb, vec3(0.299, 0.587, 0.114));
float fL = dot(f.rgb, vec3(0.299, 0.587, 0.114));
float hL = dot(h.rgb, vec3(0.299, 0.587, 0.114));
float mnL = min(min(min(bL, dL), min(fL, hL)), eL);
float mxL = max(max(max(bL, dL), max(fL, hL)), eL);
float peak = 1.0 + (-1.0 * 4.0);
float lobe = max(-FSR_RCAS_LIMIT, min(mxL, 1.0-mnL)) * exp2(-SHARPENING);
vec4 color = (b + d + f + h) * lobe + e;
return color / (4.0 * lobe + 1.0);
}
#################################
sudo apt build-dep mplayer && apt source mplayer && cd mplayer-1.5+svn38674/ && ./configure --prefix=/usr \
--enable-faad --enable-gui --enable-dvdnav --disable-ffmpeg_a --disable-vdpau && make -j4 && sudo make install##############################################
sudo nano /etc/sysctl.d/98-rpi.confnet.core.rmem_default=1000000
net.core.rmem_max=1000000net.core.rmem_max=100000064 bit armv8
wget https://github.com/bluenviron/mediamtx/releases/download/v1.15.4/mediamtx_v1.15.4_linux_arm64.tar.gzarmv7 32 bit
wget https://github.com/bluenviron/mediamtx/releases/download/v1.15.4/mediamtx_v1.15.4_linux_armv7.tar.gzunzip
tar -xf mediamtx_v1.15.4_linux_arm64v8.tar.gz
move it to
```bash
sudo mv mediamtx /usr/local/bin/
sudo mv mediamtx.yml /usr/local/etc/this create mediamtx.service
sudo tee /etc/systemd/system/mediamtx.service >/dev/null << EOF
[Unit]
Wants=network.target
[Service]
ExecStart=/usr/local/bin/mediamtx /usr/local/etc/mediamtx.yml
[Install]
WantedBy=multi-user.target
EOFand reload
sudo systemctl daemon-reload && sudo systemctl enable mediamtx && sudo systemctl start mediamtxupgrade
sudo mediamtx --upgradepactl list sources arecord -Lpw-toppw-cli sudo nano /boot/firmware/config.txt
vc4.tv_norm=PAL #which is 25 fps
may you want to set to NTSC PAL60 for framerate=30
nano .config/mpv/mpv.conf on the end of file put this in[cam]
#container-fps-override=25
#no-correct-pts
#untimed
osc=no
opengl-swapinterval=0
profile=fast
interpolation=no
#rtsp-transport=tcp
framedrop=decoder+vo
no-resume-playback
video-latency-hacks=yes
pulse-latency-hacks=yes
demuxer-lavf-o-add=fflags=+nobuffer+genpts
stream-buffer-size=4k
vd-lavc-threads=1
fullscreen=yes
ytdl=no
hr-seek=no
demuxer=lavf
chache=no
gpu-dumb-mode=yes
frames=1000000
demuxer-readahead-secs=0###########################
PIPEWIRE_LATENCY="1024/48000" change PULSE_LATENCY_MSEC=21
nano .config/mpv/mpv.conf[convert]
#vf-add = scale=480:-2
ovc = libx264
ovcopts-add = preset=medium
ovcopts-add = tune=fastdecode
ovcopts-add = b=1M
ovcopts-add = maxrate=1M,minrate=1M,bufsize=1M
ovcopts-add = rc_init_occupancy=900k
ovcopts-add = refs=2
ovcopts-add = profile=main
profile=enc-a-aac
of=matroska
framedrop=decoder
#demuxer-lavf-o-add=fflags=+nobuffer+genpts
container-fps-override=25
no-correct-pts
untimedmpv rtsp://"user:pwd"@"ip:8554"/mystream --profile=convert --o=`date +%Y-%m-%d-%H-%M`.mkv#######################################################################################################################################
vapoursynth
wget https://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2024.9.1_all.deb
sudo dpkg -i deb-multimedia-keyring_2024.9.1_all.deb
sudo nano /etc/apt/sources.list.d/raspbian.sources
Types: deb
URIs: https://www.deb-multimedia.org
Suites: unstable
Components: main non-free
Signed-By: /usr/share/keyrings/deb-multimedia-keyring.pgp
Enabled: yes
Architekture:arm64
sudo apt update
sudo apt install vapoursynth-dev
ffmpeg ./configure --enable-vapoursynth
sudo nano /usr/local/etc/mediamtx.yaml
one time for user one time for passwd
echo -n "mypass" | argon2 saltItWithSalt -id -l 32 -e Then stored with the argon2: prefix:
authInternalUsers:
- user: argon2:$argon2id$v=19$m=4096,t=3,p=1$MTIzNDU2Nzg$OGGO0eCMN0ievb4YGSzvS/H+Vajx1pcbUmtLp2tRqRU
pass: argon2:$argon2i$v=19$m=4096,t=3,p=1$MTIzNDU2Nzg$oct3kOiFywTdDdt19kT07hdvmsPTvt9zxAUho2DLqZw
permissions:
- action: publish To use SHA256, the string must be hashed with SHA256 and encoded with base64:
echo -n "user" | openssl dgst -binary -sha256 | openssl base64 echo -n "password" | openssl dgst -binary -sha256 | openssl base64
Then stored with the sha256: prefix:
authInternalUsers:
- user: sha256:j1tsRqDEw9xvq/D7/9tMx6Jh/jMhk3UfjwIB2f1zgMo=
pass: sha256:BdSWkrdV+ZxFBLUQQY7+7uv9RmiSVA8nrPmjGjJtZQQ=
permissions:
- action: publish
rtsp://"user:password"@"localhost:8554"/mystream
##############################################
v4l2-ctl -d /dev/video0 -p 15 --set-fmt-video=width=1280,height=720 --set-ctrl=brightness=57,contrast=-11
ffmpeg -hwaccel drm -hwaccel_output_format drm_prime -fflags +nobuffer+discardcorrupt \
-strict experimental -flags low_delay -hide_banner -f alsa -i plughw:0 \
-f v4l2 -input_format yuv420p -f v4l2 -i /dev/video0 -vcodec h264_v4l2m2m -b:v 1M -fpsmax 15\
-c:a libfdk_aac -profile:a aac_he -ar 44100 -b:a 32k -threads 4 -f rtsp - rtsp_transport tcp rtsp://localhost:8554/mystream
look running stream
mpv rtsp://localhost:8554/mystream
sudo nano /usr/local/bin/home-stream.sh
put this example in ! you can change framrate -r 15 audiodevice bitrate usw
v4l2-ctl -d /dev/video0 -p 15 --set-fmt-video=width=1280,height=720 --set-ctrl=brightness=57,contrast=-11,exposure_dynamic_framerate=0
ffmpeg -hwaccel drm -hwaccel_output_format drm_prime -fflags +genpts+nobuffer -avioflags direct -flags low_delay -hide_banner -strict experimental \
-f alsa -i plughw:0 -f v4l2 -input_format yuv420p -re -i /dev/video0 -c:v h264_v4l2m2m -b:v 1M -pix_fmt yuv420p -fpsmax 15 \
-c:a libopus -b:a 32k -application lowdelay -ar 48000 \
-f rtsp -rtsp_transport tcp rtsp://localhost:8554/mystream
store it and run it
nano .config/systemd/user/home-stream.service
put this in
[Unit]
Description=stream
Requires=default.target
After=multi-user.target
[Service]
ExecStartPre=/bin/sleep 15
ExecStart=home-stream.sh
Restart=always
ExecStop=killall ffmpeg
#KillMode=process
[Install]
WantedBy=default.target
store it strg +o
systemctl --user enable home-stream.service
systemctl --user start home-stream.service
systemctl --user status home-stream.service
###############################################################################################################################
lsdvd /dev/sr0 && ddrescue -b 2048 /dev/sr0 of=output.iso
so now is the img save
lsdvd /dev/sr0
# only examples
mplayer dvd://3 -nocache -dvd-device input.iso -dumpstream -dumpfile output.vob
mplayer dvd://3 -nocache -dvd-device /dev/sr0 -dumpstream -dumpfile output.vob
mpv dvd://2 --cache=no --stream-dump=output.vob
mencoder dvdnav://2 -nocache -dvd-device /media/storage/only_lovers_left_alive.iso -o /dev/null | grep aid
mencoder dvd://2 -nocache -dvd-device /media/storage/only_lovers_left_alive.iso -o /dev/null | grep sid
mencoder dvd://2 -ovc copy -oac copy -vobsubout "videoname" -vobsuboutindex 0 -sid 0 -nosound -o /dev/null -vf harddup
mpv dvdnav:// --cache=no --dvd-device=exampe.iso --stream-dump=output.vob
mpv dvd://1 --cache=no --dvd-device=exampe.iso --stream-dump=output.vob
sudo lsdvd -t 3 -x /dev/sr0
simply
mpv dvdnav:// --cache=no --dvd-device=/dev/sr0 --stream-dump=output.vob
you find the IFO file in the dvd foler
direct above the biggest files and copy that file to your home folder blablabla.IFO
-probesize 5400M -analyzeduration 5410M analyse the vob for audiotracks and subtitle this takes a long time maybe 10 or 15 minutes there is no output to this time let it run
-ifo_palette example.IFO -scodec dvdsub dvbsub
#!/bin/bash
for file in "$1"; do ffmpeg +genpts+igndts+discardcorrupt -ifo_palette example.IFO -y \
-probesize 2400M -analyzeduration 2410M -hwaccel drm -hwaccel_output_format drm_prime -fix_sub_duration \
-canvas_size 720x576 -i "$file" -ss 00:00:05 -metadata title="$file" \
-map 0:v -scodec dvdsub -map 0:s? \
-c:v h264_v4l2m2m -b:v 5M -pix_fmt yuv420p -num_capture_buffers 512 -num_output_buffers 64 -bufsize 5M --minrate 5M -maxrate 5M -aspect 16:9 -map 0:v? \
-c:a libopus -b:a 128k -map 0:a? -af volume=1.5 -movflags +faststart -af volume=1.5 -avoid_negative_ts 1 -max_interleave_delta 0 -f mp4 "${file%.*}.mp4"; done
ffmpeg -y -probesize 2400M -analyzeduration 2410M -hwaccel drm -hwaccel_output_format drm_prime -i /media/sun/Filme/Neu/the-dead-dont-die.mkv -map 0:v? -scodec copy \
-map 0:s:1 -map 0:s:2 -c:v copy -c:a copy -b:a 128k -map 0:a? -y /media/dat/test.mkv
ffmpeg +genpts+igndts+discardcorrupt -y -probesize 2400M -analyzeduration 2410M -hwaccel drm -hwaccel_output_format drm_prime -fix_sub_duration \
-i example.vob -ss 00:00:05 \
-map 0:v -scodec copy -map 0:s -c:v h264_v4l2m2m -b:v 5M -maxrate 5M -minrate 5M -bufsize 5M -pix_fmt yuv420p -num_capture_buffers 512 -num_output_buffers 64 -aspect 16:9 \
-c:a libopus -b:a 128k -map 0:a? -af volume=1.5 -movflags +faststart -f mp4 example.mp4
ffmpeg +genpts+igndts+discardcorrupt -y -hwaccel drm -hwaccel_output_format drm_prime -probesize 400M -analyzeduration 410M -fix_sub_duration \
-i output.vob -ss 00:00:05 \
-map 0:v? -c:v h264_v4l2m2m -b:v 5M -maxrate 5M -minrate 5M -bufsize 5M -pix_fmt yuv420p -num_capture_buffers 512 -num_output_buffers 64 -aspect 16:9 \
-c:a libopus -b:a 128k -map 0:a? -af volume=1.5 -movflags +faststart -f mp4 example.mp4
ffmpeg -y -fflags +genpts+igndts -ifo_palette default.IFO \
-probesize 1400M -analyzeduration 1410M -hwaccel drm -hwaccel_output_format drm_prime -i output.vob -map 0:v? \
-c:v h264_v4l2m2m -b:v 5M -maxrate 5M -minrate 5M -bufsize 5M -pix_fmt yuv420p -num_capture_buffers 512 \
-num_output_buffers 64 -an -sn -f mp4 only-lovers-audio+sub.mp4
ffmpeg -probesize 1400M -analyzeduration 1410M -fflags +genpts+igndts -ifo_palette default.IFO -fix_sub_duration -canvas_size 720x576 \
-i output.vob -c:a libfdk_aac -b:a 128k -map 0:a? -scodec dvdsub -map 0:s? -vn -f mp4 test.mp4
ffmpeg -probesize 1400M -analyzeduration 1410M -fflags +igndts -i output.vob -c:a libfdk_aac -b:a 128k -map 0:a? -vn -sn -f mp4 test.mp4
ffmpeg -fflags +genpts -i testv.mkv -i test.mkv -c:v copy -c:a copy -c:s copy -map 0:v -map 1:a -map 1:s -f matroska output.mkv
wget -O build_kernel.zip https://forums.raspberrypi.com/download/file.php?id=74529 unzip build_kernel.zip
sudo ./build-kernel -b default -c 7 -j 6 -u -d # rpi 5
sudo ./build-kernel -b default --branch rpi-6.18.y -c 6 -j 6 -u -d # rpi 4
sudo nano /etc/environment
PIPEWIRE_LATENCY=256/48000
sudo nano /etc/security/limits.d/99-realtime.conf
spook - rtprio 99
spook - memlock unlimited
spook - nice -20
#* - rtprio 99
#* - memlock unlimited
sudo nano /etc/groupsudo:x:27:spook
audio:x:29:spook
render:x:992:vnc,spook
_ssh:x:101:spook
spi:x:989:spook
i2c:x:987:spook
gpio:x:986:spook
pipewire:x:105:spook
pulse:x:106:spook
rtkit:x:117:spooksudo nano /boot/firmware/cmdline.txtisolcpus=3 ## 3te cpu only for ffmpeg