Hallo,
hier noch ein paar Verbesserungen beim Erkennen des Anfangs einer Aufnahme.
Hallo,
hier noch ein paar Verbesserungen beim Erkennen des Anfangs einer Aufnahme.
Respekt. Das ist ein wichtiges Plugin und ich schätze Deine Arbeit.
Ich nutze noch Noad, weiß aber nicht, ob das noch gepflegt wird.
Ein aktueller frischer Wind, bei einem der beiden Plugins ist super! Danke!
Ich bekommen einen Bus-Zugriffsfehler.
/usr/bin/markad_fehler --loglevel=3 -R -vvvv - /video/@video/video0/Der_Bachelor/Folge_1/2020-01-08.20.13.2-0.rec/
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
[mpeg2video @ 0x55b8ee98cd40] Invalid frame dimensions 0x0.
Bus-Zugriffsfehler
Display More
Ich benutze folgendes:
ffmpeg version 3.3.9 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --prefix=/usr/local --enable-shared --enable-pthreads --enable-gpl --enable-nonfree --enable-libxvid --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-swscale --enable-libmp3lame --enable-libvorbis --disable-ffserver --disable-libdc1394 --disable-static --disable-debug --disable-altivec --disable-network --extra-cflags=-fPIC --extra-ldflags=-fPIC
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Display More
Hallo hondansx ,
das war ja mal eine vorbildliche Fehlerbeschreibung. Hier mal eine erste Analyse:
/usr/bin/markad_fehler --loglevel=3 -R -vvvv - /video/@video/video0/Der_Bachelor/Folge_1/2020-01-08.20.13.2-0.rec/
Du nutzt gar nicht den neuen Decoder von mir, sondern den ursprünglichen. Ich habe schon lange nicht mehr mit dem originalem Decoder getestet, das Log File sieht gar nicht so aus, wie ich es erwarten würde.
Aber kein Problem, einen Crash dürfe es trotzdem nicht geben. Soweit es mir möglich und vom Aufwand sinnvoll ist, versuche ich mich auch da an Fehlerbehebungen. Ich schaue mir das mal im Laufe des Wochenendes an.
Ich habe einen Timer gesetzt auf die nächste Sendung aus deinem Test, bitte nehmen die Sendung vom nächsten Mittwoch 20:15 auch auf, dann können wir das direkt vergleichen.
Du hast unter Debian eine ältere libavcodec Version, wie ich unter Ubuntu ( libavcodec 57.107.100 / 57.107.100), das könnte auch eine mögliche Ursache sein. Ich werde versuchen, ob ich ein Debian installiert bekomme.
Bitte teste nochmals mit dem neuen Decoder, da ist dann auch das Log ausführlicher. Das Log File dazu posten reicht dann für mich.
Hallo hondansx ,
unter Ubuntu 18.04 kann ich dein Problem nicht reproduzieren. Ich habe mir mal schnell ein Debian Buster installiert, das sieht bei mir dann aber ganz anders aus.
root@VDR-Debian-buster:~# ffmpeg
ffmpeg version 4.1.4-1~deb10u1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Hyper fast Audio and Video encoder
Display More
Damit kompiliert es bei mir nicht mal, aber das würde sich einfach fixen lassen.
Hast du absichtlich ältere avcodec libs installiert ?
Debian Buster hat libavcodec 58.35.100. Musste da in decoder.cpp leicht anpassen damit es kompiliert hat:
diff -ru ./command/decoder.cpp /root/work/vdr/plugins-2.4.1/vdr-plugin-markad/command/decoder.cpp
--- ./command/decoder.cpp 2020-01-11 20:16:40.069693284 +0100
+++ /root/work/vdr/plugins-2.4.1/vdr-plugin-markad/command/decoder.cpp 2020-01-11 14:11:39.243039417 +0100
@@ -184,14 +184,14 @@
}
else
{
-#if LIBAVCODEC_VERSION_INT >= ((58<<16)+(54<<8)+100)
+#if LIBAVCODEC_VERSION_INT >= ((58<<16)+(35<<8)+100)
video_codecid=AV_CODEC_ID_MPEG2VIDEO;
#else
video_codecid=AV_CODEC_ID_MPEG2VIDEO_XVMC;
#endif
}
video_codec = avcodec_find_decoder(video_codecid);
-#if LIBAVCODEC_VERSION_INT < ((58<<16)+(54<<8)+100)
+#if LIBAVCODEC_VERSION_INT < ((58<<16)+(35<<8)+100)
if ((!video_codec) && (video_codecid==AV_CODEC_ID_MPEG2VIDEO_XVMC))
{
// fallback to MPEG2VIDEO
@@ -209,7 +209,7 @@
#endif
if (video_context)
{
-#if LIBAVCODEC_VERSION_INT >= ((58<<16)+(54<<8)+100)
+#if LIBAVCODEC_VERSION_INT >= ((58<<16)+(35<<8)+100)
if (video_codec->capabilities & AV_CODEC_CAP_TRUNCATED)
video_context->flags|=AV_CODEC_FLAG_TRUNCATED; // we do not send complete frames
video_context->flags|=AV_CODEC_FLAG_LOW_DELAY;
@@ -226,7 +226,7 @@
{
video_context->skip_frame=AVDISCARD_NONKEY; // just I-frames
} else {
-#if LIBAVCODEC_VERSION_INT >= ((58<<16)+(54<<8)+100)
+#if LIBAVCODEC_VERSION_INT >= ((58<<16)+(35<<8)+100)
video_context->flags2|=AV_CODEC_FLAG2_CHUNKS;
#else
video_context->flags2|=CODEC_FLAG2_CHUNKS;
@@ -244,7 +244,7 @@
#else
int ret=avcodec_open(video_context, video_codec);
#endif
-#if LIBAVCODEC_VERSION_INT < ((58<<16)+(54<<8)+100)
+#if LIBAVCODEC_VERSION_INT < ((58<<16)+(35<<8)+100)
if ((ret < 0) && (video_codecid==AV_CODEC_ID_MPEG2VIDEO_XVMC))
{
// fallback to MPEG2VIDEO
@@ -278,7 +278,7 @@
case AV_CODEC_ID_H264:
esyslog("could not open codec for H264");
break;
-#if LIBAVCODEC_VERSION_INT < ((58<<16)+(54<<8)+100)
+#if LIBAVCODEC_VERSION_INT < ((58<<16)+(35<<8)+100)
case AV_CODEC_ID_MPEG2VIDEO_XVMC:
esyslog("could not open codec MPEG2 (XVMC)");
break;
@@ -346,7 +346,7 @@
case AV_CODEC_ID_H264:
esyslog("codec for H264 not found");
break;
-#if LIBAVCODEC_VERSION_INT < ((58<<16)+(54<<8)+100)
+#if LIBAVCODEC_VERSION_INT < ((58<<16)+(35<<8)+100)
case AV_CODEC_ID_MPEG2VIDEO_XVMC:
esyslog("codec for MPEG2 (XVMC) not found");
#endif
Display More
Hallo Xcoder ,
so habe ich das auf meiner Debian Buster Test Server auch gemacht. hondansx hat aber eine viel ältere libavcodec drauf, vermutlich weil dies die letzte war, mit der der ursprüngliche Code kompiliert hat. Da macht es auch keinen Sinn mehr, darin Fehler zu suchen.
hondansx : Am besten die aktuelle libavcodec installierten und den angepassten Patch in Anhang verwenden.
Mit dem neuen Decoder läuft es durch, aber es wird keine marks Datei erstellt.
H
Hast du absichtlich ältere avcodec libs installiert ?
Für meine Einsatzzwecke hat es noch keinen Grund gegeben, ein update zu machen.
Werde das aber jetzt erstmal nachholen.
Hallo hondansx ,
laut deinem Log kann libavcodec nicht mal intern einen Buffer allokieren um die Frames zu dekodieren. Dann kann es auch keine Marken geben.
Ich habe den Fehler unter Debin Buster mit aktuellen libavcodec nicht. Also am besten, wie du schon geschrieben hast, erst mal einen Update machen und dann nochmal testen.
Sie haben sonst keinen Unterschied und somit keine Auswirkung für Ubuntu.
OK, das gilt dann wohl auch für Arch, deswegen war meine Nachfrage.
Bei meinem PI mit Raspbian Buster kompiliert er das Plugin aber er installiert das eigentliche markad nicht.
Installiert habe ich so:
git clone https://projects.vdr-developer…it/vdr-plugin-markad.git/
dann die 4 Patches angewendet. "make" und "make install" im src Verzeichniss des VDR.
Das Plugin wird erstellt. Im Anhang mal die Ausgabe vom "make install".
der hat markad nicht installiert, weil er es gar nicht bauen konnte. Du hast zahlreiche Fehler beim Kompilieren bekommen. Ich vermute dir fehlen einige libs.
apt-cache policy libavcodec-dev
apt-cache policy libavformat-dev
apt-cache policy libavutil-dev
Wenn einer diese Befehle "Installed: (None)" ausgibt, die fehlenden libs über apt-get install libav… installieren.
Dann nochmal "make clean && make all" und darauf achten, dass keine Fehlermeldungen kommen, ggf. die Fehlermeldungen von "make all" posten.
libavcodec-dev:
Installiert: 7:4.1.4-1+rpt1~deb10u1
Installationskandidat: 7:4.1.4-1+rpt1~deb10u1
libavformat-dev:
Installiert: 7:4.1.4-1+rpt1~deb10u1
Installationskandidat: 7:4.1.4-1+rpt1~deb10u1
libavutil-dev:
Installiert: 7:4.1.4-1+rpt1~deb10u1
Installationskandidat: 7:4.1.4-1+rpt1~deb10u1
Die Ausgabe von "make all" bekomme ich nicht vollständig kopiert. Es sind zu viele Zeilen für mein putty.
wow, das hätte ich nicht erwartet.
Ich habe nochmals tiefer in die Glasgugel reingeschaut: Da muss beim Anwenden der Patches was schief gegangen sein. Poste mal bitte aus dem Verzeichnis ".../PLUGIN/src/markad/command" das "Makefile".
Laut deiner make Ausgabe fehlt "decoder_new.o" und "-lavformat". Die Änderung im Makefile kommt mit dem letzten Patch. Hast du die Patches in numerischer Reihenfolge angewendet ?
g++ -g -rdynamic -O3 -funroll-loops -Wall -Wextra -Woverloaded-virtual -Wno-parentheses markad-standalone.o decoder.o marks.o streaminfo.o video.o audio.o demux.o -lavcodec -lavutil -pthread -o markad
Sollte aber so aussehen (andere Compiler Options sollten egal sein):
g++ -g -O2 -fdebug-prefix-map=/build/vdr-hON7XR/vdr-2.4.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE markad-standalone.o decoder.o marks.o streaminfo.o video.o audio.o demux.o decoder_new.o -lavcodec -lavutil -lavformat -pthread -o markad
Ich habe nochmal die Patches angewendet und die Ausgabe von "make all" und "make install" nochmal angehangen. Anbei auch das Makefile.
Danke dir.
Don’t have an account yet? Register yourself now and be a part of our community!