NOAD 0.6.1 und ffmpeg?

  • Hi,


    Und zwar möchte ich NOAD ans laufen bekommen und dafür brauche ich ja ffmpeg. Folgendermaßen habe ich es installiert:


    svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
    cd ffmpeg
    ./configure --enable-shared && make && make install && ldconfig


    das ganze läuft auch ohne Fehler durch nur was komisch ist in dem Verzeichnis /usr/local/include gibt es kein ffmpeg? Ich habe derzeit ein SuSE10.3 System und auf meinem alten SuSE10.2 gibt es unter dem Verzeichnis einen Ordner ffmpeg?


    Wo liegt mein Problem?

  • Hi,


    ich konnte das Problem lösen es fehlen Ausführberechtigungen auf folgende Dateien:


    cd /ffmpeg
    chmod +x configure
    chmod +x version.sh
    chmod +x doc/texi2pod.pl


    also folgendermaßen installiert:


    svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-cvs-2007-08-22
    cd ffmpeg-cvs-2007-08-22/
    chmod +x configure
    chmod +x version.sh
    chmod +x doc/texi2pod.pl
    ./configure --enable-shared && make && make install && ldconfig


    so ffmpeg ist einwandfrei durchgelaufen. Ein ffmpeg -v gibt folgendes aus:


    FFmpeg version SVN-r10178, Copyright (c) 2000-2007 Fabrice Bellard, et al.
    configuration: --enable-shared
    libavutil version: 49.5.0
    libavcodec version: 51.41.0
    libavformat version: 51.12.2
    built on Aug 22 2007 16:34:58, gcc: 4.2.1 (SUSE Linux)

  • so jetzt habe ich aber Probleme NOAD in der Version 0.6.1 zu übersetzen. So habe ich es gemacht:


    wget http://gentoo.fh-luh.de/files/noad/noad-0.6.1.tar.bz2
    tar -xjf noad-0.6.1.tar.bz2
    cd noad-0.6.1/
    ./configure --with-ffmpeg --with-ffmpeglibdir=/usr/local/lib --with-ffmpeginclude=/usr/local/include/ffmpeg --with-mpeginclude=/usr/local/include/mpeg2dec


    und beim make kommt dann diese Fehlermeldung:


    make all-am
    make[1]: Entering directory `/tmp/noad-0.6.1'
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT tools.o -MD -MP -MF ".deps/tools.Tpo" \
    -c -o tools.o `test -f 'tools.cpp' || echo './'`tools.cpp; \
    then mv -f ".deps/tools.Tpo" ".deps/tools.Po"; \
    else rm -f ".deps/tools.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT vdr_cl.o -MD -MP -MF ".deps/vdr_cl.Tpo" \
    -c -o vdr_cl.o `test -f 'vdr_cl.cpp' || echo './'`vdr_cl.cpp; \
    then mv -f ".deps/vdr_cl.Tpo" ".deps/vdr_cl.Po"; \
    else rm -f ".deps/vdr_cl.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT svdrpc.o -MD -MP -MF ".deps/svdrpc.Tpo" \
    -c -o svdrpc.o `test -f 'svdrpc.cpp' || echo './'`svdrpc.cpp; \
    then mv -f ".deps/svdrpc.Tpo" ".deps/svdrpc.Po"; \
    else rm -f ".deps/svdrpc.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT mpeg2wrap.o -MD -MP -MF ".deps/mpeg2wrap.Tpo" \
    -c -o mpeg2wrap.o `test -f 'mpeg2wrap.cpp' || echo './'`mpeg2wrap.cpp; \
    then mv -f ".deps/mpeg2wrap.Tpo" ".deps/mpeg2wrap.Po"; \
    else rm -f ".deps/mpeg2wrap.Tpo"; exit 1; \
    fi
    rm -f libnoad.a
    ar cru libnoad.a tools.o vdr_cl.o svdrpc.o mpeg2wrap.o
    ranlib libnoad.a
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT cchecklogo.o -MD -MP -MF ".deps/cchecklogo.Tpo" \
    -c -o cchecklogo.o `test -f 'cchecklogo.cpp' || echo './'`cchecklogo.cpp; \
    then mv -f ".deps/cchecklogo.Tpo" ".deps/cchecklogo.Po"; \
    else rm -f ".deps/cchecklogo.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT ccontrol.o -MD -MP -MF ".deps/ccontrol.Tpo" \
    -c -o ccontrol.o `test -f 'ccontrol.cpp' || echo './'`ccontrol.cpp; \
    then mv -f ".deps/ccontrol.Tpo" ".deps/ccontrol.Po"; \
    else rm -f ".deps/ccontrol.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT cgetlogo.o -MD -MP -MF ".deps/cgetlogo.Tpo" \
    -c -o cgetlogo.o `test -f 'cgetlogo.cpp' || echo './'`cgetlogo.cpp; \
    then mv -f ".deps/cgetlogo.Tpo" ".deps/cgetlogo.Po"; \
    else rm -f ".deps/cgetlogo.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT ctoolbox.o -MD -MP -MF ".deps/ctoolbox.Tpo" \
    -c -o ctoolbox.o `test -f 'ctoolbox.cpp' || echo './'`ctoolbox.cpp; \
    then mv -f ".deps/ctoolbox.Tpo" ".deps/ctoolbox.Po"; \
    else rm -f ".deps/ctoolbox.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT noad.o -MD -MP -MF ".deps/noad.Tpo" \
    -c -o noad.o `test -f 'noad.cpp' || echo './'`noad.cpp; \
    then mv -f ".deps/noad.Tpo" ".deps/noad.Po"; \
    else rm -f ".deps/noad.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT tnoad.o -MD -MP -MF ".deps/tnoad.Tpo" \
    -c -o tnoad.o `test -f 'tnoad.cpp' || echo './'`tnoad.cpp; \
    then mv -f ".deps/tnoad.Tpo" ".deps/tnoad.Po"; \
    else rm -f ".deps/tnoad.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT noaddata.o -MD -MP -MF ".deps/noaddata.Tpo" \
    -c -o noaddata.o `test -f 'noaddata.cpp' || echo './'`noaddata.cpp; \
    then mv -f ".deps/noaddata.Tpo" ".deps/noaddata.Po"; \
    else rm -f ".deps/noaddata.Tpo"; exit 1; \
    fi
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT audiotools.o -MD -MP -MF ".deps/audiotools.Tpo" \
    -c -o audiotools.o `test -f 'audiotools.cpp' || echo './'`audiotools.cpp; \
    then mv -f ".deps/audiotools.Tpo" ".deps/audiotools.Po"; \
    else rm -f ".deps/audiotools.Tpo"; exit 1; \
    fi
    In file included from audiotools.cpp:6:
    /usr/local/include/ffmpeg/avcodec.h:2236: warning: ‘ImgReSampleContext’ is deprecated (declared at /usr/local/include/ffmpeg/avcodec.h:2230)
    /usr/local/include/ffmpeg/avcodec.h:2246: warning: ‘ImgReSampleContext’ is deprecated (declared at /usr/local/include/ffmpeg/avcodec.h:2230)
    audiotools.cpp: In function ‘int scan_audio_stream_0(unsigned char*, int)’:
    audiotools.cpp:100: warning: ‘avcodec_decode_audio’ is deprecated (declared at /usr/local/include/ffmpeg/avcodec.h:2554)
    audiotools.cpp:101: warning: ‘avcodec_decode_audio’ is deprecated (declared at /usr/local/include/ffmpeg/avcodec.h:2554)
    if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/include/ffmpeg -I/usr/local/include/mpeg2dec -D_GNU_SOURCE -g -O3 -MT main.o -MD -MP -MF ".deps/main.Tpo" \
    -c -o main.o `test -f 'main.cpp' || echo './'`main.cpp; \
    then mv -f ".deps/main.Tpo" ".deps/main.Po"; \
    else rm -f ".deps/main.Tpo"; exit 1; \
    fi
    main.cpp:360:56: warning: trigraph ??( ignored, use -trigraphs to enable
    g++ -g -O3 -L/usr/local/lib -L/usr/local/lib -o noad cchecklogo.o ccontrol.o cgetlogo.o ctoolbox.o noad.o tnoad.o noaddata.o audiotools.o main.o libnoad.a -lavcodec -lmpeg2
    audiotools.o: In function `scan_audio_stream_0(unsigned char*, int)':
    /tmp/noad-0.6.1/audiotools.cpp:101: undefined reference to `avcodec_decode_audio(AVCodecContext*, short*, int*, unsigned char*, int)'
    audiotools.o: In function `exitAVCodec()':
    /tmp/noad-0.6.1/audiotools.cpp:70: undefined reference to `avcodec_close(AVCodecContext*)'
    audiotools.o: In function `initAVCodec()':
    /tmp/noad-0.6.1/audiotools.cpp:41: undefined reference to `avcodec_init()'
    /tmp/noad-0.6.1/audiotools.cpp:45: undefined reference to `avcodec_register_all()'
    /tmp/noad-0.6.1/audiotools.cpp:48: undefined reference to `avcodec_find_decoder(CodecID)'
    /tmp/noad-0.6.1/audiotools.cpp:55: undefined reference to `avcodec_alloc_context()'
    /tmp/noad-0.6.1/audiotools.cpp:58: undefined reference to `avcodec_open(AVCodecContext*, AVCodec*)'
    collect2: ld returned 1 exit status
    make[1]: *** [noad] Error 1
    make[1]: Leaving directory `/tmp/noad-0.6.1'
    make: *** [all] Error 2

  • habe die benötigten Pakete wie:


    libmpeg2
    imagemagick (optional)
    ffmpeg (optional für "audio silence detection")


    installiert.

  • Sorry das ich den Post nochmal pushen muss. Ich möchte nur ungern auf NOAD verzichten. Hat keiner eine Idee dazu?


    Ich denke mal das sich beim ffmpeg vielleicht was geändert hat und der NOAD deshalb nicht druchläuft?

  • Sorry, dass ich Deine Selbstgespräche unterbreche :D


    Noad 0.6.1?? Auf der Noad-Homepage (siehe Wiki) ist 0.6.0 noch die aktuellste!


    Zitat

    tmp/noad-0.6.1/audiotools.cpp:101: undefined reference to `avcodec_decode_audio(AVCodecContext*, short*, int*, unsigned char*, int)'
    audiotools.o: In function `exitAVCodec()':


    Deine Fehlermeldung sieht so aus, als ob er eine Definition von libavcodec braucht die nicht existiert. Hast Du das Devel-Paket von libavcodec installiert?

  • Zitat

    Original von FireFly
    Sorry, dass ich Deine Selbstgespräche unterbreche :D


    Noad 0.6.1?? Auf der Noad-Homepage (siehe Wiki) ist 0.6.0 noch die aktuellste!



    Deine Fehlermeldung sieht so aus, als ob er eine Definition von libavcodec braucht die nicht existiert. Hast Du das Devel-Paket von libavcodec installiert?


    Hi,


    ja ich habe die Version 0.6.1 vom obigen Link. Stimmt auf der NOAD-Homepage gibts es "nur" die Version 0.6.0 woher kommt das?


    Ah ok das Paket libavcodec-devel hatte ich nicht installiert. Jetzt kommt aber die nächste Fehlermeldung oder ist das die gleiche?:


    make all-am
    make[1]: Entering directory `/tmp/noad-0.6.1'
    g++ -g -O3 -L/usr/local/lib -L/usr/local/lib -o noad cchecklogo.o ccontrol.o cgetlogo.o ctoolbox.o noad.o tnoad.o noaddata.o audiotools.o main.o libnoad.a -lavcodec -lmpeg2
    audiotools.o: In function `scan_audio_stream_0(unsigned char*, int)':
    /tmp/noad-0.6.1/audiotools.cpp:101: undefined reference to `avcodec_decode_audio(AVCodecContext*, short*, int*, unsigned char*, int)'
    audiotools.o: In function `exitAVCodec()':
    /tmp/noad-0.6.1/audiotools.cpp:70: undefined reference to `avcodec_close(AVCodecContext*)'
    audiotools.o: In function `initAVCodec()':
    /tmp/noad-0.6.1/audiotools.cpp:41: undefined reference to `avcodec_init()'
    /tmp/noad-0.6.1/audiotools.cpp:45: undefined reference to `avcodec_register_all()'
    /tmp/noad-0.6.1/audiotools.cpp:48: undefined reference to `avcodec_find_decoder(CodecID)'
    /tmp/noad-0.6.1/audiotools.cpp:55: undefined reference to `avcodec_alloc_context()'
    /tmp/noad-0.6.1/audiotools.cpp:58: undefined reference to `avcodec_open(AVCodecContext*, AVCodec*)'
    collect2: ld returned 1 exit status
    make[1]: *** [noad] Error 1
    make[1]: Leaving directory `/tmp/noad-0.6.1'
    make: *** [all] Error 2

  • Zitat

    Original von FireFly
    Fehlt da evtl. ein entsprechendes #include ? Schau mal in welchen Header-File das avcodec_decode_audio() drinsteht und ob diese Header-Datei dann in dem cpp (evtl. indirekt) included wird.
    Oder nimm die 0.6.0, die läuft (zumindest mit SuSE 10.2) durch ;D


    Hi,


    also die Version 0.6.1 läuft bei mir unter SuSE10.2 auch. Jetzt habe ich aber SuSE10.3. Was meinst Du mit #include da steh ich etwas auf dem Schlauch ;) sorry keine Ahnung was Du da meinst :)

  • Bleibt die Frage nach dem Killerfeature der Version 0.6.1, geht damit evtl die Logerkennung bei Kabel1 wieder zuverlässigger?


    Grüße Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • Zitat

    Original von CKone
    Bleibt die Frage nach dem Killerfeature der Version 0.6.1


    Ein diff zaubert folgende Änderung hervor:

    Zitat

    --with-avoid-trashing avoid filesystem trashing (uses posix_fadvise)

    Leider ist dsas nicht in der History aufgeführt und von TheNoad nicht offiziell übernommen worden.


    #include's sind die entsprechenden Zeilen am Anfang der cpp-Quelltexte, die die Definitionen für die benutzten Libraries in den Quelltext "reinladen". Wenns aber unter 10.2 geht und unter 10.3 nicht, dann liegts wohl an dem libavcodec-Paket für 10.3 - aber 10.3 ist ja eh noch Beta ...

  • Zitat

    Original von FireFly


    Ein diff zaubert folgende Änderung hervor:

    Leider ist dsas nicht in der History aufgeführt und von TheNoad nicht offiziell übernommen worden.


    #include's sind die entsprechenden Zeilen am Anfang der cpp-Quelltexte, die die Definitionen für die benutzten Libraries in den Quelltext "reinladen". Wenns aber unter 10.2 geht und unter 10.3 nicht, dann liegts wohl an dem libavcodec-Paket für 10.3 - aber 10.3 ist ja eh noch Beta ...


    ah ok dann warte ich einfach mal ab. Also ist die NOAD 0.6.1 doch eine neuere Version?

  • Zitat

    Original von FireFly


    Ja, aber keine offizielle vom eigentlichen Autor. Eigentlich kein guter Stil vom "Patcher", dass er die offizielle Versionsnummer hochzählt ... das sollte nur der Autor machen.


    Ja seh ich genau so. Nur was ich schade finde das sich mit NOAD nichts mehr tut? Was ich gemerkt habe das mein NOAD nicht mehr so genau, wie er es am Anfang mal war, ist. Soll heißen die Schnittpunkte sind Teilweise ein bis zwei Minuten verschoben ist das bei euch auch so? Haben vielleicht die Sender das mal etwas umgestellt?

  • Hallo sewn4,
    das mit der Genauigkeit von noad ist bei mir auch so. Ich denke diese ganzen Animationen und anderen Spielchen mit den Logos machen da Probleme.
    Ich hatte übrigens unter Debian Lenny auch Probleme mit dem Compilieren von noad. Nachdem ich dann die ffmpeg-Pakete deinstalliert und ffmpeg in einer älten Version selbst compiliert habe ging's dann problemlos.
    Gruß
    steini

    1.: Multitainer, P3 Celeron 1,1GHz, 320MB, Samsung 300GB, TT 1.3 (4MB), TT-Budget, IR Selbstbau, µC-Wakeup-Selbstbau, RGB & SPDif über Platine von STB
    mod. Linvdr 0.7 (auf 512 Mb CF), AC3-Firmware 2623
    2.: Met@box 500, 64 MB, mod. Linvdr0.7 (auf 128 Mb CF), 20GB Seagate, TT 1.5

  • Hi,


    also hab mal einiges hin und her probiert habs aber net hinbekommen. Ich habe mal in das Skript wie oben beschrieben reingeschaut hab aber leider keine Ahnung von Programmierung etc. vielleicht kann ja mal einer reinschauen?


    Hier immer noch der gleiche Fehler:


    main.cpp:360:56: warning: trigraph ??( ignored, use -trigraphs to enable
    g++ -g -O3 -L/usr/local/lib -L/usr/local/lib -o noad cchecklogo.o ccontrol.o cgetlogo.o ctoolbox.o noad.o tnoad.o noaddata.o audiotools.o main.o libnoad.a -lavcodec -lmpeg2
    audiotools.o: In function `scan_audio_stream_0(unsigned char*, int)':
    /tmp/noad-0.6.1/audiotools.cpp:101: undefined reference to `avcodec_decode_audio(AVCodecContext*, short*, int*, unsigned char*, int)'
    audiotools.o: In function `exitAVCodec()':
    /tmp/noad-0.6.1/audiotools.cpp:70: undefined reference to `avcodec_close(AVCodecContext*)'
    audiotools.o: In function `initAVCodec()':
    /tmp/noad-0.6.1/audiotools.cpp:41: undefined reference to `avcodec_init()'
    /tmp/noad-0.6.1/audiotools.cpp:45: undefined reference to `avcodec_register_all()'
    /tmp/noad-0.6.1/audiotools.cpp:48: undefined reference to `avcodec_find_decoder(CodecID)'
    /tmp/noad-0.6.1/audiotools.cpp:55: undefined reference to `avcodec_alloc_context()'
    /tmp/noad-0.6.1/audiotools.cpp:58: undefined reference to `avcodec_open(AVCodecContext*, AVCodec*)'
    collect2: ld returned 1 exit status
    make[1]: *** [noad] Error 1
    make[1]: Leaving directory `/tmp/noad-0.6.1'
    make: *** [all] Error 2

  • Hier die Lösung (besser spät als nie):


    In audiotools.cpp die Include-Datei von avcodec.h mit extern "C" umgeben:


    C
    extern "C" 
    {
    #include <avcodec.h>
    }


    Bei neueren ffmpegs dann so:


    C
    extern "C" 
    {
    #include <libavcodec/avcodec.h>
    }


    Gruß


    Joe_D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!