Forum Programmation.autre rediriger un flux vidéo actif

Posté par (page perso) . Licence CC by-sa
2
14
fév.
2016

Bonjour

J'utilise un soft pour Windows (Zedtv, via wine) qui a l'avantage de visionner (mais pas d'enregistrer) la télé suisse (RTS1/RTS2)

J'arrive à voir la commande lancée (livestreamer…) en lancer une autre modifiée (livestreamer -o fichier.ts …) qui va enregistrer, mais je me demandais si je pouvais lancer Zedtv, puis rediriger l'affichage de la vidéo dans un fichier.

J'ai lu plein de discussions

http://stackoverflow.com/questions/10453799/python-interacting-with-stdin-out-of-a-running-process-in-nix?lq=1

http://stackoverflow.com/questions/593724/redirect-stderr-stdout-of-a-process-after-its-been-started-using-command-lin

http://stackoverflow.com/questions/34289972/redirect-running-process-stdout-stderr-to-ssh-stdout-using-gdb

vu des outils comme gdb, strace, reredirect

mais je n'ai pas réussi à lancer mon soft, et dévier la vidéo dans un fichier.

Le process actif a plein de file descriptors ouverts, mais je n'ai pas trouvé lequel(s) rediriger

$ ls -l /proc/11610/fd
total 0
lrwx------ 1 gg gg 64 févr. 14 19:43 0 -> /dev/pts/14
lrwx------ 1 gg gg 64 févr. 14 19:43 1 -> /dev/pts/14
lrwx------ 1 gg gg 64 févr. 14 19:43 10 -> /dev/pts/14
lrwx------ 1 gg gg 64 févr. 14 19:43 11 -> socket:[689709]
lr-x------ 1 gg gg 64 févr. 14 19:43 12 -> pipe:[691753]
l-wx------ 1 gg gg 64 févr. 14 19:43 13 -> pipe:[689710]
lr-x------ 1 gg gg 64 févr. 14 19:43 14 -> pipe:[696339]
lr-x------ 1 gg gg 64 févr. 14 19:43 15 -> pipe:[691754]
lrwx------ 1 gg gg 64 févr. 14 19:43 16 -> /dev/pts/14
l-wx------ 1 gg gg 64 févr. 14 19:43 17 -> pipe:[691754]
l-wx------ 1 gg gg 64 févr. 14 19:43 18 -> pipe:[689711]
lr-x------ 1 gg gg 64 févr. 14 19:43 19 -> pipe:[691755]
lrwx------ 1 gg gg 64 févr. 14 19:43 2 -> /dev/pts/14
lr-x------ 1 gg gg 64 févr. 14 19:43 20 -> pipe:[696340]
l-wx------ 1 gg gg 64 févr. 14 19:43 21 -> pipe:[696340]
l-wx------ 1 gg gg 64 févr. 14 19:43 22 -> pipe:[696341]
lrwx------ 1 gg gg 64 févr. 14 19:43 23 -> socket:[689709]
lr-x------ 1 gg gg 64 févr. 14 19:43 24 -> pipe:[691756]
lrwx------ 1 gg gg 64 févr. 14 19:43 25 -> socket:[520148]
l-wx------ 1 gg gg 64 févr. 14 19:43 26 -> pipe:[691756]
lrwx------ 1 gg gg 64 févr. 14 19:43 27 -> socket:[692912]
lrwx------ 1 gg gg 64 févr. 14 19:43 29 -> socket:[691758]
l-wx------ 1 gg gg 64 févr. 14 19:43 3 -> pipe:[694067]
lr-x------ 1 gg gg 64 févr. 14 19:43 4 -> pipe:[695317]
lr-x------ 1 gg gg 64 févr. 14 19:43 5 -> /home/gg/.wine_zedtv/drive_c/Program Files/ZedTV
lr-x------ 1 gg gg 64 févr. 14 19:43 6 -> pipe:[695318]
l-wx------ 1 gg gg 64 févr. 14 19:43 7 -> pipe:[695318]
lrwx------ 1 gg gg 64 févr. 14 19:43 8 -> socket:[689708]
lrwx------ 1 gg gg 64 févr. 14 19:43 9 -> socket:[695313]

Si quelqu'un a une idée…

  • # faire l'inverse ?

    Posté par . Évalué à 2.

    enregistrer le fichier, et lire le fichier pour l'affichage en direct

    • [^] # Re: faire l'inverse ?

      Posté par (page perso) . Évalué à 2.

      le soft en question, dont les sources ne sont pas disponibles, ne propose pas l'enregistrement.

      If you choose open source because you don't have to pay, but depend on it anyway, you're part of the problem.evloper) February 17, 2014

      • [^] # Re: faire l'inverse ?

        Posté par . Évalué à 2.

        une autre modifiée (livestreamer -o fichier.ts …) qui va enregistrer,

        si tu sais lancer 1 stream pour le regarder, puis lancer une 2e commande pour enregistrer,
        ben tu fais l'inverse, tu lances celle qui enregistre d'abord,

        et tu lis l'enregistrement en demarrant quelques secondes apres.

        • [^] # Re: faire l'inverse ?

          Posté par (page perso) . Évalué à 2. Dernière modification le 14/02/16 à 21:52.

          si tu sais lancer 1 stream pour le regarder, puis lancer une 2e commande pour enregistrer,
          ben tu fais l'inverse, tu lances celle qui enregistre d'abord,

          Non, car je déduis de la commande générée par Zedtv ma commande (un grand mot pour ajouter -o xxx.ts) , la commande générée est variable (elle contient un jeton d'identification) , je ne sais pas la prédire.

          Et surtout je trouvais rigolo de jouer dans gdb ou strace à dévier des files descriptors

          If you choose open source because you don't have to pay, but depend on it anyway, you're part of the problem.evloper) February 17, 2014

  • # simplescreenrecorder

    Posté par (page perso) . Évalué à 1.

    C'est pas tout à fait ce que tu veux, c'est un peu bourrin comme technique, mais ça marche bien (testé avec un i5)

    http://www.maartenbaert.be/simplescreenrecorder/

    • [^] # Re: simplescreenrecorder

      Posté par (page perso) . Évalué à 2.

      oui, je connais aussi screencastor dans le même genre, mais on perd en qualité je suppose.

      If you choose open source because you don't have to pay, but depend on it anyway, you're part of the problem.evloper) February 17, 2014

  • # Utiliser les pipes

    Posté par . Évalué à 1.

    Coucou,

    Livestreamer permet d'envoyer le flux vidéo vers le pipe stdout grâce à l'option -O.

    Ensuite, tu peux récupérer ce qui sort de stdout dans ffmpeg grâce à la commande suivante (le tiret tout seul indique à ffmpeg de lire stdin):
    ffmpeg -re -i -

    En gros, la commande ressemble à ça:
    livestreamer -O URL best | ffmpeg -re -i -

    Ainsi, ffmpeg reçoit le flux, et tu peux donc t'en servir pour à la fois l'enregistrer, et à la fois l'envoyer vers ffplay avec un autre pipe (ffmpeg multiple outputs).

    Adau

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.