Forum Programmation.autre rediriger un flux vidéo actif

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
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  (site web personnel) . Évalué à 2.

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

      ウィズコロナ

      • [^] # 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  (site web personnel) . Évalué à 2. Dernière modification le 14 février 2016 à 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

          ウィズコロナ

  • # simplescreenrecorder

    Posté par  (site web personnel) . É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/

  • # 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 à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.