Videos konvertieren mit Raspberry ?

  • Hallo,


    habe mir einen Video Recorder mit vdr, Raspberry Pi 3 B+ und Raspian zusammengebaut. Läuft soweit ganz gut, als Web Frontend benutze ich Live. Die Videos werden ja im TS Format abgespeichert. Ich habe vor, die Videos zu konkatenieren, ins MP4 Format zu konvertieren und dann per DLNA ins Heimnetz zu streamen. Technisch geht das. Allerdings habe ich festgestellt, dass das Konvertieren auf dem Raspi gefühlt ewig dauert. Testweise habe ich ein Video mit Dauer etwa 1 Std., Größe etwa 1,5 GB vom TS- ins MP4-format konvertiert mittels FFMPEG. FFMPEG schreibt ja die "Geschwindigkeit" auf die Konsole. Beim Raspi war das ca 0,5. Auf meiner Ubuntu-Kiste mit Razen liegt der Wert bei 9. Das heißt für mich, Konvertieren auf dem Raspi macht keinen Sinn.

    Habt ihr da schon Erfahrungen gemacht, was mit dem Raspi Sinn macht und was nicht?


    Schon mal Danke für die Tipps


    Kibu

  • Hi Kibu,


    TS und MP4 sind Container Formate, die Audio und Video (und andere) Pakete enthalten koennen. Diese lassen sich recht einfach von TS nach MP4 umkopieren, auch auf einem RasPi:


    ffmpeg -i datei.ts -vcodec copy -acodec copy datei.mp4


    Falls Du wirklich umcodieren willst, geht das auf dem RasPi eventuell per omxtx in Hardware:


    https://github.com/dickontoo/omxtx


    Gruss, ollo

  • Überprüfe mal ob deine ffmpeg version am raspberry mit Hardware Unterstützung für den openmax chip gebaut wurde (also mit --enable-omx-rpi beim configure) .


    Ich habe mir eine Version selbst kompiliert (genauer gesagt habe ich gpac libaacplus x264 und ffmpeg statisch gelinkt) mit der ich SD live-tv (mpg video codec) am raspberry via streamdev und einem externremux script in h264 encode, was am RPI3B+ überraschend gut funktioniert und dann nur ca. 30% CPU Auslastung verursacht.

  • Hi mtron,


    das ist ja goil - habe mir nach dieser Anleitung ffmpeg selber gebaut und kann nun mit vielen fps (30..90) auf dem RasPi transcodieren :tup


    ffmpeg -c:v mpeg2_mmal -i /srv/vdr/video/some.rec/00002.ts -vf yadif=0 -c:v h264_omx -c:a copy -b:v 1500k filme/test.mp4

    ffmpeg version N-91046-g974eb4aaaa Copyright (c) 2000-2018 the FFmpeg developers   built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516   configuration: --arch=armhf --target-os=linux --enable-gpl --enable-omx --enable-omx-rpi --enable-nonfree --enable-mmal --prefix=/usr/local --enable-libx264 --enable-libx265

    ...

    frame= 2516 fps= 41 q=-0.0 Lsize=   21964kB time=00:01:41.53 bitrate=1772.0kbits/s dup=7 drop=0 speed=1.66x


    Gruß, ollo

  • So, nachdem es jetzt seit einiger Zeit rund läuft, ein paar Messergebnisse.

    Soweit ich es herausgefunden habe, hat das installierte ffmpeg keine Hardware-Unterstützung für openmax. Habe auch noch nicht versucht, mir das zu kompilieren.

    Eine VDR Aufnahme in HD Qualität mit 7 TS -Dateien je 2GB:

    Konkatenieren zu 1 TS Datei: 1292776 Millis

    Mit folgendem Befehl umwandeln in MP4, moov atom verschieben: 2461345 Millis

    Code
    ffmpeg -i all.ts -c:v copy -c:a copy -copyts -movflags faststart -metadata: title="Ein Titel" -f mp4 -y all.mp4

    Das Verschieben ins Verzeichnis vom UPNP-Server dauert dann nochmals 457 Millis.

    Danach zeigt ein DLNA-Client den Film unter "Ein Titel" an.

    Die CPU Auslastung lag bei max. 60%, Speicherverbrauch ca 470MB von 1GB installiert.

    Damit VDR den Vorgang nicht abschießt wegen Timeout, läuft alles als neuer Prozess.


    VG

    Kibu

  • Naja, das ist ja erst einmal nur "copy". Das heisst, die Dateien sind nach wie vor noch riesig...


    Beim Transcodieren habe ich allerdings auch noch keine zufriedenstellenden Ergebnisse. Habe schon alles mögliche versucht. Ob mit ffmpeg oder mencoder, und auch unzählige Optionen/Settings durchprobiert. Die Qualität leidet doch ganz erheblich.


    Hat eigentlich auch der Raspi2 diesen omx-chip? Oder muss man auf Raspi3 umsteigen?

    Infrastruktur: 4 Inverto Black Premium Quattro-LNBs auf Jultec JPS1702-16

    Server: Ubuntu 18.04, mit MAX-S8, als VNSI-Server

    Clients: Kodi mit Openelec auf Raspberries

  • Hat eigentlich auch der Raspi2 diesen omx-chip? Oder muss man auf Raspi3 umsteigen?

    der "omx-chip" ist genau genommen OpenMax --> https://en.wikipedia.org/wiki/OpenMAX

    dieser ist Bestandteil vom Broadcom BCM2835-37


    [Blockierte Grafik: https://elinux.org/images/thumb/a/a2/VideoCore-Architecture-and-Source.png/500px-VideoCore-Architecture-and-Source.png]


    Darauf setzt bsw. auch das Plugin rpihddevice seit erster Version auf. Am VideoCore IV hat sich beim RPI über die Generationen nichts geändert.

Jetzt mitmachen!

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