Script nach Aufnahme

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Script nach Aufnahme

      Hallo zusammen,

      ich habe folgende Idee, aber leider auf Enigma2 keine Ahnung, wie es umzusetzen ist:

      Nach einer fertigen Aufnahme würde ich gerne automatisch die .ts Dateien demuxen um die einzelnen Streams zu haben. Es geht hauptsächlich um die Tonspuren.
      Über Windows gibt es ja diverse Möglichkeiten wie eac3to o.ä..

      Kann mir dabei einer helfen?

      Also im Prinzip: Aufnahme fertig -> File.ts -> Demuxen -> File.h264, File.ac3

      Gruß
      BETA-Tester: VMC5, EPGShare und Fluid
    • hallo ...
      wollt mal fragen ob es bei dem alten thema eine lösung gibt ?

      ich will/muss die aufnahme bei abschluss in mp4 konvertieren
      da ein .TS weder vom sony noch vom panasonic via dlna abspielbar ist.

      meine ansatz wäre dann per script *.ts auf *.mp4 umbenennen oder mit ffmpeg konvertieren

      würd mich über hilfe freuen :)

      lg Newi
      Nicht was A sagt, sondern was B versteht ist entscheidend !
      Alle sagten: "Das geht nicht." Dann kam einer, der wusste das nicht, und hat es gemacht.

      VU+ Duo²
    • Was hast du denn für eine Box? Füll doch bitte dein Profil aus.

      Wenigstens für die 4k-Boxen ist ein ffmpeg am Feed. Je nachdem wie du das vom Komfort her realisieren möchtest, könntest du versuchen, ein Mini-Plugin ähnlich Movie-Cut zu schreiben, welches du in die Movielist einhängen könntest, oder das mit Hilfe eines Scriptes zu erledigen.

      mp4 ist ja "nur" ein Container, vielleicht funktioniert dann ein Aufruf wie "ffmpeg -i xxx.ts -map 0:v -map 0:a -c:v copy -c:a copy xxx.mp4". Müsstest du mal probieren.
    • SORRY ... werde das VU+ Duo² im profil FETT machen ;)

      das mit dem ffmpg ist mir klar! und geht auch wunderbar !!!!

      ich möchte es aber nicht immer manuell sondern nach der aufnahme AUTOMATISCH machen lassen
      wie vieles mehr **smile

      lg Newi
      Nicht was A sagt, sondern was B versteht ist entscheidend !
      Alle sagten: "Das geht nicht." Dann kam einer, der wusste das nicht, und hat es gemacht.

      VU+ Duo²
    • nach der aufnahme z.b. diesen script ausführen

      Shell-Script

      1. #! /bin/bash
      2. WORK_PATH="/media/hdd/movie"
      3. cd "${WORK_PATH}"
      4. for f in *.ts
      5. do ffmpeg -i "$f" -acodec copy -vcodec copy "$f.mp4"
      6. rm "$f"
      7. done
      Nicht was A sagt, sondern was B versteht ist entscheidend !
      Alle sagten: "Das geht nicht." Dann kam einer, der wusste das nicht, und hat es gemacht.

      VU+ Duo²
    • @rdamas an inotify hab ich auch schon gedacht !!
      @schomi würde auch gehen

      ABER

      was sagt mir das ? ich kann keinen script nach der aufnahme laufen lassen ? es gibt keinen hook danach ?????????

      ich hab da viel gelesen und es werden immer umwege aufgezeigt aber nie ein direkter weg.

      gibt es den direkten weg nicht **dummfragendschau

      also dann das gute inotify mit while true; do inotifywait -e close_write bla bla bla

      FRAGE: KILL ICH DIE BOX DAMIT ? und gibt es das als opkg ? mit opkg list | grep -i inotify finde ich da nix :-(((
      Nicht was A sagt, sondern was B versteht ist entscheidend !
      Alle sagten: "Das geht nicht." Dann kam einer, der wusste das nicht, und hat es gemacht.

      VU+ Duo²

      The post was edited 1 time, last by newi ().

    • newi wrote:

      ich will/muss die aufnahme bei abschluss in mp4 konvertieren
      da ein .TS weder vom sony noch vom panasonic via dlna abspielbar ist.
      Sorry, aber irgendwie kann ich das nicht glauben. Der Sony sollte MPEG-2 TS per DLNA unterstützen. Gegebenenfalls müsstest Du die TS-Datei einfach in *.mpg umbenennen.
    • warum nicht elegant in python lösen?

      kurzes fiddle:

      Python Source Code

      1. self.session.nav.RecordTimer.on_state_change.append(self.TimerChange)
      2. def TimerChange(self, timer):
      3. if hasattr(timer,
      4. "Filename") and not timer.justplay and not timer.justremind and timer.state == TimerEntry.StateEnded:
      5. path, filename = os_path.split(timer.Filename)
      6. filename = filename + ".ts"
      kurz gesagt: RecordTimer hat einen StateChange Event...
      Nachschauen ob beendet und dann machen was du willst...
      VMC
      EPG Share
      VU Alexa Skill
      Fluid Next
      Global Search

      Spenden sind immer herzlich willkommen... einfach hier klicken und das ganze an sbeatz76@googlemail.com schicken
    • Ich habe bisher keinen Hook dafür gesehen. Und inotify ist ja gerade dafür gebaut, dass es event-gesteuert ist und du nicht pollen muss. Von daher wird es deine Box sicher nicht runter ziehen, zumal du ja nur auf close_write für ts-Files reagieren musst.

      Ein Paket für inotify scheint es nicht zu geben - vielleicht findest du irgendwo ein fertiges Binary für mipsel-Boxen, oder du suchst dir z.B. ein Python-Paket dafür (z.B. pyinotify).

      Edit: nicht genau genug geschaut. Wie @hmmmdada beschrieben hat, sollte es funktionieren.

      The post was edited 1 time, last by rdamas ().

    • @Bastelbogen ... tja IST SO!

      alle könne die .TS über den mediaserver auf der nfs-freigabe lesen und abspielen
      ABER als dlna dreht sich dann das "bitte warten" (sony zeigt 50% 100%) und danach kommt -> kann datei nicht lesen!!!!

      SO und wir sind wieder beim thema "Script nach Aufnahme" damit ich das .TS automatisch bei ende der aufnahme in .mp4 umbenennen lasse
      dann kann jeder das per dlna lesen und auch abspielen (schon manuell versucht).

      ich hab mir schon diverse workaround überlegt z.b. aufnahme -> linuxserver und der dreht das mit inotify um damit wär das thema dann erledigt
      Nicht was A sagt, sondern was B versteht ist entscheidend !
      Alle sagten: "Das geht nicht." Dann kam einer, der wusste das nicht, und hat es gemacht.

      VU+ Duo²
    • danke leute für die anteilnahme **freu

      @hmmmdada ... sorry kann kein python und bin auch kein probiergramierer
      aber deinen ansatz finde ich TOLL ~~~

      da ich schon einiges über das thema script nach aufnahme gelesen habe,
      kannst du da nix für alle bauen ???? **liebschau

      @rdamas ... ja inotify wär eine lösung und mein workaround die aufnahme gleich auf das nfs vom debian-server zu machen spart probleme auf der box (könnte aber auch andere bringen)

      wenn hmmmdada da was bauen könnt wär das echt der hammer ~~~ nicht nur für mich ;-))))

      lg Newi
      Nicht was A sagt, sondern was B versteht ist entscheidend !
      Alle sagten: "Das geht nicht." Dann kam einer, der wusste das nicht, und hat es gemacht.

      VU+ Duo²
    • Wegen inotify auf dem server:
      Inotify funktioniert nur wenn der kernel des servers das schreiben macht - die aufnahme wird aber defakto von der Box geschrieben, daher wird inotify da nicht funktionieren.

      dazu kommt dass bei inotify das ende des schreibvorgangs nicht wirklich kommt - es kommt ein IN_CLOSE_WRITE, was aber nicht heisst dass das schreiben beendet ist
      und ab da musst du erst noch periodisch checken ob die datei noch grösser wird...

      ein timerhook plugin ist ja eigentlich pillepalle 75% des codes steht ja schon oben... mir fehlt aber die zeit, findet sich aber sicher jemand der dir das in ein plugin packen kann
      VMC
      EPG Share
      VU Alexa Skill
      Fluid Next
      Global Search

      Spenden sind immer herzlich willkommen... einfach hier klicken und das ganze an sbeatz76@googlemail.com schicken
    • dennoch danke für deine mühe **smile

      lg Newi

      ps. **pffff was mach ich nun mit dem code ?
      Nicht was A sagt, sondern was B versteht ist entscheidend !
      Alle sagten: "Das geht nicht." Dann kam einer, der wusste das nicht, und hat es gemacht.

      VU+ Duo²
    • Hoffen, dass sich jemand blöd genug mit Zeit findet (so wie ich - bin noch krank geschrieben), das in ein Plugin zu verpacken.

      Zip-File mit ipk drin ist angehängt; das Plugin ruft nach Aufnahme-Ende das Script /usr/lib/enigma2/python/Plugins/Extensions/OnRecEnd/onrecend.sh auf, das du anpassen kannst (z.B. ffmpeg aufrufen).
      Files
      • onrecend.zip

        (2.42 kB, downloaded 66 times, last: )
    • @rdamas ... WOW!!



      also ehrlich ~~~ ich bin sprachlos und kann nur sagen ... DANKE Danke danke

      ich werde das gerne die tage ausprobieren und auch gerne berichten ;)

      hat schon einen grund warum bei dir MEISTER steht! schon der wille alleine genügt dafür ;)

      DANKE

      lg Newi


      Nicht was A sagt, sondern was B versteht ist entscheidend !
      Alle sagten: "Das geht nicht." Dann kam einer, der wusste das nicht, und hat es gemacht.

      VU+ Duo²
    • alsooo das funktioniert WUNDERBAR ...
      einfach geil ~~~ DANKE nochmal :happy4:
      und für alle die nicht wissen was in das script
      /usr/lib/enigma2/python/Plugins/Extensions/OnRecEnd/onrecend.sh soll ?

      hier ein kleines beispiel ;)

      Shell-Script

      1. #!/bin/bash
      2. datum=$(date +"%Y%m%d %H%M")
      3. tsPath="/media/hdd/movie/"
      4. echo "$datum - Recording End:" "$1" >> /var/log/onrecend.log
      5. wget -q -O - "http://192.168.101.118/web/message?text=Aufnahme%20fertig%20...&type=0&timeout=20"
      6. sleep 30
      7. #--- move ts to mp4 --------------------
      8. #echo "$datum - mv" "$tsPath$1" "$tsPath$1.mp4" >> /var/log/onrecend.log
      9. #mv "$tsPath$1" "$tsPath$1.mp4"
      10. #--- ffmpeg ts to mp4 --------------------------------
      11. echo "Convert $1 to mp4 ..." >> /var/log/onrecend.log
      12. ffmpeg -i "$tsPath$1" -acodec copy -vcodec copy "$tsPath$1.mp4"
      13. echo "Remove " "$tsPath$1" >> /var/log/onrecend.log
      14. rm "$tsPath$1"
      Display All
      in diesem fall ist ffmpeg aktiv und das umbenennen in zeile 13 deaktiviert ...


      ffmpeg kann man mit opkg install ffmpeg installieren =O

      lg Newi

      Nicht was A sagt, sondern was B versteht ist entscheidend !
      Alle sagten: "Das geht nicht." Dann kam einer, der wusste das nicht, und hat es gemacht.

      VU+ Duo²
    • @rdamas: Danke für das Plugin, ich verwende es, um die kaputten Rechte der Aufnahmen zu fixen, die VTi 13.0.3 gerade setzt. Habe bei mir lokal plugin.py so modifiziert, dass statt filename timer.Filename an das Skript übergeben wird. Das ist IMO sinnvoller, da es im Skript wesentlich einfacher ist, den Pfad bei Bedarf (z.B. mit basename) wegzumachen, als die Datei in den diversen Aufnahmepfaden zu suchen.

      @newi: dein Umcontainer-Skript ist im Prinzip gut, aber wenn ffmpeg nicht installiert ist oder mit einem Fehler endet, wird die Originalaufnahme trotzdem gelöscht. Da gehört noch eine Fehlerbehandlung rein oder wenigstens ein set -e (Abbruch bei allen folgenden Fehlern).

      Grüße

      Arne
    • Moin moin,

      juchuu ich habe auch endlich das Plugin gefunden.
      Es reagiert auf TimerEntry.StateEnded.
      Gilt das auch für händisch abgebrochene Timer? Bzw. auch für Aufnahmen die mit Sofortaufnahme (rote Taste) gemacht werden?

      Danke.