Posts by johol

    Mit der ffmpeg Version 8.0.1 von jc-kynesim ist die HW-Unterstützung wieder vorhanden und die „shd main filter“ Threads sind auch verschwunden.
    Die eigentliche Fehlerursache war mein Halbwissen über GitHub.
    Ich habe auf jc-kynesim nur die Version 5.1.d gefunden und daher für 8.0.1 die Originalversion von http://www.ffmpeg.org verwendet.
    Die richtigen Fragen von mir wären gewesen:
    Gibt es eine jc-kynesim ffmpeg Version 8.0.1 und wen ja, wie kann ich sie downloaden?
    Wie sind die Einstellungen für das Kompilieren von 8.0.1?

    Es ist mir klar, dass es besonders schwer ist Halbwissenden remote Unterstützung zu leisten.
    Daher möchte ich mich bei euch bedanken, dass ihr nicht aufgegeben habt.

    Vielen Dank

    Version jc-kynesim und 8.0.1

    --enable-v4l2_m2m und --enable-hwaccels sind aktiviert

    Einstellungen für jc-kynesim

    --disable-static --enable-shared --enable-gpl --enable-version3 --enable-logging --disable-doc --enable-pic --enable-optimizations --disable-extra-warnings --enable-avdevice --enable-avcodec --enable-avformat --enable-swscale --enable-avfilter --disable-devices --enable-pthreads --enable-network --disable-gnutls --disable-gray --enable-swscale-alpha --disable-small --enable-v4l2_m2m --enable-libdrm --disable-vaapi --disable-vdpau --disable-mmal --enable-runtime-cpudetect --disable-hardcoded-tables --disable-encoders --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2 --enable-encoder=mjpeg --enable-encoder=png --enable-hwaccels --disable-muxers --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod --enable-muxer=mpegts --enable-demuxers --enable-parsers --enable-bsfs --enable-protocol=http --disable-indevs --disable-outdevs --enable-filters --disable-avisynth --enable-bzlib --disable-lzma --disable-alsa --disable-frei0r --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libopencv --disable-libdc1394 --disable-libfreetype --disable-libgsm --disable-libmp3lame --disable-libopenjpeg --disable-librtmp --enable-libdav1d --enable-libspeex --disable-libtheora --disable-libvo-amrwbenc --disable-libvorbis --disable-libvpx --disable-libx264 --disable-libxavs --enable-libxml2 --disable-libxvid --enable-zlib --enable-asm --disable-altivec --enable-neon --disable-symver


    Einstellungen für 8.0.1

    --disable-static --enable-shared --enable-gpl --enable-version3 --enable-logging --disable-doc --enable-debug --disable-stripping --enable-pic --enable-optimizations --disable-extra-warnings --enable-avdevice --enable-avcodec --enable-avformat --enable-swscale --enable-avfilter --disable-devices --enable-pthreads --enable-network --disable-gnutls --disable-gray --enable-swscale-alpha --disable-small --enable-v4l2_m2m --enable-libdrm --enable-libdrm --disable-vdpau --disable-mmal --enable-runtime-cpudetect --disable-hardcoded-tables --disable-encoders --enable-encoder=ac3 --enable-encoder=aac --enable-encoder=wmav2 --enable-encoder=mjpeg --enable-encoder=mpeg2video --enable-encoder=mp2 --enable-encoder=png --enable-hwaccels --disable-muxers --enable-muxer=spdif --enable-muxer=adts --enable-muxer=asf --enable-muxer=ipod --enable-muxer=mpegts --enable-muxer=matroska --enable-muxer=mp4 --enable-muxer=webm --enable-muxer=webm_chunk --enable-muxer=webm_dash_manifest --enable-demuxers --enable-parsers --enable-bsfs --enable-protocol=http --disable-indevs --disable-outdevs --enable-filters --disable-avisynth --enable-bzlib --disable-lzma --disable-alsa --disable-frei0r --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libopencv --disable-libdc1394 --disable-libfreetype --disable-libgsm --disable-libmp3lame --disable-libopenjpeg --disable-librtmp --disable-libtheora --disable-libvo-amrwbenc --disable-libx264 --disable-libxavs --disable-libxvid --enable-zlib --enable-asm --disable-altivec --enable-neon --disable-symver

    Ich habe jetzt weiter getestet (mit der Version 8.0.1 und jc-kynesim), aber das Ergebnis war immer dasselbe.

    Die Log-Zeile mit "PixelFormat:" hat bei einer TV-Wiedergabe immer gleich ausgesehen und es waren dann auch immer 5 "shd main filter" Tasks vorhanden.

    Eines ist mir aufgefallen, dass die "configure" Einstellung "--enable-sand" bei mir immer die Meldung "Unknown option "--enable-sand". See ./configure --help for available options." ergibt und das bei Version 8.0.1 und jc-kynesim.

    Aber wenn ich die Datei "package.mk" von LibreELEC.tv ansehe, dann habe ich den Eindruck, dass "--enable-sand" doch sehr wichtig ist für den Rpi.

    Ich könnte mir vorstellen, dass dies das Problem ist.

    Ich habe die nächsten Tage leider keine Zeit weiter zu testen.

    Ich habe jetzt auf einen Radio-Kanal geschaltet und dann wieder zurück auf einen TV-Kanal.

    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] switching to channel 2 C-1537-5-5002 (ORF 2 Wien HD-338 (C))
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: SetPlayMode: 0
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: received StopEvent
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: Preparing to leave state PLAY
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: Changing state PLAY -> STOP
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: ClearAudio:
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice][Codec] audiocodec: FlushBuffers
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice][Drm] videorender: DisplayBlackFrame: closing, set a black FB
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] videostream main: ClearVdrCoreToDecoderQueue: packets 0
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice][Codec] videostream main: CloseDecoder
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: State changed to STOP
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: state change done in 23 ms
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: SetVideoDisplayFormat: 1
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: GetSpuDecoder:
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: CanReplay: 1
    Jän 27 21:56:57 raspberrypi vdr[81888]: [90485] device 2 TS buffer thread ended (pid=81888, tid=90485)
    Jän 27 21:56:57 raspberrypi vdr[81888]: [90484] buffer stats: 30080 (0%) used
    Jän 27 21:56:57 raspberrypi vdr[81888]: [90484] device 2 receiver thread ended (pid=81888, tid=90484)
    Jän 27 21:56:57 raspberrypi vdr[81888]: [90509] device 2 receiver thread started (pid=81888, tid=90509, prio=high)
    Jän 27 21:56:57 raspberrypi vdr[81888]: [90510] device 2 TS buffer thread started (pid=81888, tid=90510, prio=high)
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: CanReplay: 1
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: SetPlayMode: 1
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: received PlayEvent
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: Preparing to leave state STOP
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: Changing state STOP -> BUFFERING
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: State changed to BUFFERING
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] videorender: ResetFrameCounter: reset m_startCounter 0 TrickSpeed 0
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81888] [softhddevice] device: state change done in 0 ms
    Jän 27 21:56:57 raspberrypi vdr[81888]: [81895] [softhddevice][Drm] videorender: CommitBuffer: SetPlane OSD 1 (fb = 720)
    Jän 27 21:56:57 raspberrypi vdr[81888]: [90509] [softhddevice][Codec] audiocodec: Close
    Jän 27 21:56:57 raspberrypi vdr[81888]: [90509] [softhddevice] device: PlayAudio: new channel id 0xBD
    Jän 27 21:56:57 raspberrypi vdr[81888]: [90509] [softhddevice][Codec] audiocodec: Close
    Jän 27 21:56:57 raspberrypi vdr[81888]: [90509] [softhddevice][Codec] audiocodec: Open: Codec ATSC A/52A (AC-3) found, passthrough mask 0
    Jän 27 21:56:58 raspberrypi vdr[81888]: [90509] [softhddevice][Codec] Stream: 000001 | E0 | FFF0 | 84D00D | 335827ED 99135827 C3698089 1B000000
    Jän 27 21:56:58 raspberrypi vdr[81888]: [81896] [softhddevice][Codec] videocodec: main: Open: Try to open decoder for CodecID h264
    Jän 27 21:56:58 raspberrypi vdr[81888]: [81896] [softhddevice][Codec] videocodec: FindHWConfig: no HW config found for H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
    Jän 27 21:56:58 raspberrypi vdr[81888]: [81896] [softhddevice][Codec] videocodec: FindHWConfig: no HW config found for V4L2 mem2mem H.264 decoder wrapper
    Jän 27 21:56:58 raspberrypi vdr[81888]: [81896] [softhddevice][Codec] videocodec: main: Open: Codec H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 for CodecID h264 found
    Jän 27 21:56:58 raspberrypi vdr[81888]: [81896] [softhddevice][Codec] videocodec: FindHWConfig: no HW config found for H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
    Jän 27 21:56:58 raspberrypi vdr[81888]: [81896] [softhddevice][Codec] videocodec: main: Open: Codec H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 for CodecID h264 opened, using 1 threads
    Jän 27 21:56:58 raspberrypi vdr[81888]: [81896] [softhddevice][Codec] videocodec: main: SendPacket: set extradata 0x7f74384ed0 64
    Jän 27 21:56:58 raspberrypi vdr[81888]: [81896] [softhddevice][Codec] videocodec: GetFormat: PixelFormat: yuv420p videoCtx->pix_fmt: (null) sw_pix_fmt: yuv420p Codecname: h264
    Jän 27 21:56:58 raspberrypi vdr[81888]: [81896] [softhddevice][Codec] filter thread: InitAndStart: filter="scale" args="video_size=1280x720:pix_fmt=0:time_base=1/90000:pixel_aspect=1/1"
    Jän 27 21:56:58 raspberrypi vdr[81888]: [90523] shd main filter thread started (pid=81888, tid=90523, prio=high)
    Jän 27 21:56:58 raspberrypi vdr[81888]: [90523] [softhddevice] threads: video filter thread started
    Jän 27 21:56:58 raspberrypi vdr[81888]: [90523] [softhddevice][Drm] drmbuffer: Setup: Added FB fb_id 721 width 1280 height 720 pix_fmt NV12
    Jän 27 21:56:58 raspberrypi vdr[81888]: [90523] [softhddevice][Drm] drmbuffer: Setup: Added FB fb_id 722 width 1280 height 720 pix_fmt NV12
    Jän 27 21:56:58 raspberrypi vdr[81888]: [90523] [softhddevice][Drm] drmbuffer: Setup: Added FB fb_id 725 width 1280 height 720 pix_fmt NV12

    ffmpeg 8.0.1 habe ich jetzt auf die Seite gegeben.

    Ich teste jetzt mit der jc-kynesim Version

    ./ffmpeg -decoders | grep h264
    ffmpeg version N-111519-gefa6cec759 Copyright (c) 2000-2023 the FFmpeg developers
    built with gcc 12 (Debian 12.2.0-14+deb12u1)
    configuration: --prefix=/home/pi/vdr/ffmpeg/ffmpeg-rpi-jc-kynesim/ffmpeg --pkgconfigdir=/home/pi/vdr/ffmpeg/ffmpeg-rpi-jc-kynesim/ffmpeg/pkgconfigb --shlibdir=/home/pi/vdr/ffmpeg/ffmpeg-rpi-jc-kynesim/shlib --enable-shared --enable-libv4l2 --enable-libdrm --enable-opencl
    libavutil 58. 14.100 / 58. 14.100
    libavcodec 60. 22.100 / 60. 22.100
    libavformat 60. 10.100 / 60. 10.100
    libavdevice 60. 2.101 / 60. 2.101
    libavfilter 9. 8.102 / 9. 8.102
    libswscale 7. 3.100 / 7. 3.100
    libswresample 4. 11.100 / 4. 11.100
    VFS..D h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
    V..... h264_v4l2m2m V4L2 mem2mem H.264 decoder wrapper (codec h264)

    Im Log-File finde ich dazu:

    [softhddevice][Codec] videocodec: FindHWConfig: no HW config found for H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10

    und

    [softhddevice][Codec] videocodec: FindHWConfig: no HW config found for V4L2 mem2mem H.264 decoder wrapper

    Es sieht so aus, als ob beide keine HW-Unterstützung finden.

    Ich habe mich heute weiter mit ffmpeg beschäftigt und bin darauf gekommen, dass bei meinem compilierten ffmpeg doch keine HW-Unterstützung vorhanden sein wird.

    Bei Verwendung von meinem selbst compilierten ffmpeg finde ich folgende Zeile im Log-File (sieht nicht nach HW-Unterstützung aus):
    [softhddevice][Codec] videocodec: FindHWConfig: no HW config found for V4L2 mem2mem H.264 decoder wrapper

    Wenn ich ffmpeg von meinem OS bookworm verwende, dann erhalte ich die Zeile (sieht nach HW-Unterstützung aus):
    [softhddevice][Codec] videocodec: Open: Codec V4L2 mem2mem H.264 decoder wrapper for CodecID h264 found

    Auch der Befehl „ffmpeg -hwaccels“ gibt bei diesem 6 Methoden aus, aber bei meinem compilierten ffmpeg nichts.

    Beim letzten Compilierversuch habe ich „configure“ mit „--enable-shared --enable-libv4l2 --enable-libdrm –enable-opencl“ aufgerufen.
    „ffmpeg -hwaccels“ gibt jetzt „drm“ und „opencl“ aus, aber die Einträge im Log-File sind immer noch dieselben.

    Wie muss ich ffmpeg compilieren, damit die Rpi-HW unterstützt wird?

    Da hat wohl mein Halbwissen wieder unbarmherzig zugeschlagen.

    Vielen Dank

    Ich benutze die Mainline ffmpeg Versionen, aber ich compiliere jetzt gerade die Version von jc-kynesim.

    Entschuldigung, aber ich habe zu den Logs noch Fragen:

    Soll ich FFMPEG_DEBUG und/oder MEDIA_DEBUG im Makefile aktivieren oder Logs im OSD unter Einstellungen Plugins?

    Wo sollte ich dann die Loginformationen finden? (Mit journalctl oder werden sie in Dateien abgelegt?)

    Hallo,

    Ich habe vor einigen Wochen meinen VDR von Rpi 3 auf Rpi 4 upgegraded.
    Der VDR hängt mit 2 Sundtek DVB-C Sticks im Magenta Kabel-TV Netz.
    Die SW-Version des VDR ist 2.7.7 und ich versuche „softhddevice-drm-gles“ auf neuesten Stand zu halten.
    Dabei ist mir aufgefallen, dass bei den neueren „softhddevice-drm-gles“ Versionen die Gesamtauslastung des Rpi 4 stark angestiegen ist (nur bei Video, nicht bei Radio).

    Die letzte „softhddevice-drm-gles“ Version, wo die Auslastung noch gering ist, war 1.2.1 (Gesamtauslastung ca. 7%).
    Die nächste Version, die ich verwendet habe, war 1.4.2.
    Ab dieser ist die Gesamtauslastung des Rpi 4 auf ca. 50% angestiegen (auch bei 1.5.3).
    Ich habe mir mit „top -H“ die Threads bei der Version 1.5.3 angesehen und bemerkt, dass die fünf „shd main filter“ Threads und ein „shd main decode“ Thread diese Mehrauslastung verursachen.
    Mich stört vor allem, dass durch die erhöhte Auslastung auch die Temperatur des Rpi 4 stark ansteigt.

    OS-release: Debian GNU/Linux 12 (bookworm) mit den neuesten Patches
    ffmpeg: Zuerst habe ich das bookworm eigene ffmpeg 5.1.8 verwendet und danach ffmpeg 8.0.1. Aber es war keine Änderung der Auslastung zu erkennen.
    Getestet habe ich mit h264 1280x720 TV-Sendungen.

    Kann es sein, dass die neueren „softhddevice-drm-gles“ Versionen keine HW-, sondern eine SW-Dekodierung durchführen?

    Vielen Dank im Voraus für die Antworten

    Ich hoffe, ich bin hier richtig.

    Bei der Aufnahme von Radioprogrammen mit VDR 2.7.3 (und auch mit VDR 2.7.2) werden viele Fehler (ca. 10-11 pro Sekunde) gezählt.

    Mit VDR 2.7.1 wird bei der Radioaufnahme kein Fehler angezeigt.

    Wenn nach einer Aufnahme mit VDR 2.7.1 die Datei „index“ gelöscht und VDR 2.7.3 gestartet wird, dann werden beim Neuerstellen dieser Datei genau so viele Fehler gezählt als ob die Aufnahme mit VDR 2.7.3 durchgeführt worden wäre.

    Die Hardware ist ein Raspberry Pi 3 mit einem Sundtek MediaTV Pro.

    Das Signal erhalte ich über das Magenta Kabel in Wien (DVB-C).

    Übrigens, ich verwende den VDR schon über 10 Jahre und bin begeistert davon.

    Vielen Dank an alle Entwickler

    Inhalt der "info" Dateien bei der Aufnahme mit VDR 2.7.1 und VDR 2.7.3.

    Auszug aus dem "syslog" bei der Aufnahme mit VDR 2.7.3