Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/10/2024, à 14:06

JujuLand

[Résolu] Enregistrement et lecture de vidéo encodée vp09

Bonjour,
J'ai enregistré une vidéo avec yt-dlp sans problème, sauf que le codec vp09 n'est pas pris en charge, et que je ne peux pas la lire.

En cherchant de la doc sur yt-dlp, j'ai trouvé un paramètre qui permet de voir les encodages utilisés. Sur cette doc, le choix fait permet d'enregistrer la vidéo et l'audio dans un format lisible sous Linux.
Malheureusement, pour cette vidéo, et sans doute de nombreuses autres, les différents choix ne permettent pas d'enregistrer les deux en même temps.

alain@Gramps-JujuLand2:~/Bureau$ yt-dlp -F https://www.youtube.com/watch?v=wmzDrWtkd8g
[youtube] Extracting URL: https://www.youtube.com/watch?v=wmzDrWtkd8g
[youtube] wmzDrWtkd8g: Downloading webpage
[youtube] wmzDrWtkd8g: Downloading ios player API JSON
[youtube] wmzDrWtkd8g: Downloading web creator player API JSON
[youtube] wmzDrWtkd8g: Downloading m3u8 information
[info] Available formats for wmzDrWtkd8g:
ID      EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3     mhtml 48x27        0    │                  mhtml │ images                                  storyboard
sb2     mhtml 80x45        0    │                  mhtml │ images                                  storyboard
sb1     mhtml 160x90       0    │                  mhtml │ images                                  storyboard
sb0     mhtml 320x180      0    │                  mhtml │ images                                  storyboard
233     mp4   audio only        │                  m3u8  │ audio only          unknown             Default
234     mp4   audio only        │                  m3u8  │ audio only          unknown             Default
139-drc m4a   audio only      2 │    2.19MiB   49k https │ audio only          mp4a.40.5   49k 22k low, DRC, m4a_dash
249-drc webm  audio only      2 │    2.27MiB   51k https │ audio only          opus        51k 48k low, DRC, webm_dash
250-drc webm  audio only      2 │    3.01MiB   67k https │ audio only          opus        67k 48k low, DRC, webm_dash
139     m4a   audio only      2 │    2.19MiB   49k https │ audio only          mp4a.40.5   49k 22k low, m4a_dash
249     webm  audio only      2 │    2.27MiB   51k https │ audio only          opus        51k 48k low, webm_dash
250     webm  audio only      2 │    3.01MiB   67k https │ audio only          opus        67k 48k low, webm_dash
140-drc m4a   audio only      2 │    5.81MiB  129k https │ audio only          mp4a.40.2  129k 44k medium, DRC, m4a_dash
251-drc webm  audio only      2 │    5.91MiB  132k https │ audio only          opus       132k 48k medium, DRC, webm_dash
140     m4a   audio only      2 │    5.81MiB  129k https │ audio only          mp4a.40.2  129k 44k medium, m4a_dash
251     webm  audio only      2 │    5.90MiB  131k https │ audio only          opus       131k 48k medium, webm_dash
602     mp4   256x144     15    │ ~  4.31MiB   96k m3u8  │ vp09.00.10.08   96k video only
269     mp4   256x144     30    │ ~ 10.18MiB  227k m3u8  │ avc1.4D400C    227k video only
160     mp4   256x144     30    │    3.83MiB   85k https │ avc1.4D400C     85k video only          144p, mp4_dash
603     mp4   256x144     30    │ ~  7.95MiB  177k m3u8  │ vp09.00.11.08  177k video only
278     webm  256x144     30    │    4.23MiB   94k https │ vp09.00.11.08   94k video only          144p, webm_dash
229     mp4   426x240     30    │ ~ 19.80MiB  442k m3u8  │ avc1.4D4015    442k video only
133     mp4   426x240     30    │    9.80MiB  218k https │ avc1.4D4015    218k video only          240p, mp4_dash
604     mp4   426x240     30    │ ~ 14.59MiB  325k m3u8  │ vp09.00.20.08  325k video only
242     webm  426x240     30    │    8.56MiB  191k https │ vp09.00.20.08  191k video only          240p, webm_dash
230     mp4   640x360     30    │ ~ 48.51MiB 1082k m3u8  │ avc1.4D401E   1082k video only
134     mp4   640x360     30    │   21.39MiB  477k https │ avc1.4D401E    477k video only          360p, mp4_dash
605     mp4   640x360     30    │ ~ 26.45MiB  590k m3u8  │ vp09.00.21.08  590k video only
243     webm  640x360     30    │   14.46MiB  322k https │ vp09.00.21.08  322k video only          360p, webm_dash
231     mp4   854x480     30    │ ~ 83.01MiB 1852k m3u8  │ avc1.4D401F   1852k video only
135     mp4   854x480     30    │   42.73MiB  952k https │ avc1.4D401F    952k video only          480p, mp4_dash
606     mp4   854x480     30    │ ~ 44.87MiB 1001k m3u8  │ vp09.00.30.08 1001k video only
244     webm  854x480     30    │   25.46MiB  567k https │ vp09.00.30.08  567k video only          480p, webm_dash
232     mp4   1280x720    30    │ ~173.10MiB 3862k m3u8  │ avc1.64001F   3862k video only
136     mp4   1280x720    30    │   83.58MiB 1862k https │ avc1.64001F   1862k video only          720p, mp4_dash
609     mp4   1280x720    30    │ ~115.77MiB 2583k m3u8  │ vp09.00.31.08 2583k video only
247     webm  1280x720    30    │   43.00MiB  958k https │ vp09.00.31.08  958k video only          720p, webm_dash
270     mp4   1920x1080   30    │ ~333.48MiB 7440k m3u8  │ avc1.640028   7440k video only
137     mp4   1920x1080   30    │  162.59MiB 3623k https │ avc1.640028   3623k video only          1080p, mp4_dash
614     mp4   1920x1080   30    │ ~174.52MiB 3893k m3u8  │ vp09.00.40.08 3893k video only
248     webm  1920x1080   30    │   71.55MiB 1594k https │ vp09.00.40.08 1594k video only          1080p, webm_dash
620     mp4   2560x1440   30    │ ~416.88MiB 9301k m3u8  │ vp09.00.50.08 9301k video only
271     webm  2560x1440   30    │  305.20MiB 6801k https │ vp09.00.50.08 6801k video only          1440p, webm_dash

J'ai donc enregistré séparément vidéo en mp4 et audio en mp3 et ai essayé de les enregistrer ensuite ensemble, mais je n'ai pas réussi.
Avec cin, je n'ai pas compris comment faire, avec openshot, je n'ai pas réussi ...

Y aurait-il un moyen, avec peut -être un autre logiciel ?

Merci

Dernière modification par JujuLand (Le 31/10/2024, à 15:08)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#2 Le 30/10/2024, à 14:28

berserk

Re : [Résolu] Enregistrement et lecture de vidéo encodée vp09

Bonjour
VLC et MPV n'arrivent pas à lire ce format ?

Hors ligne

#3 Le 30/10/2024, à 15:25

JujuLand

Re : [Résolu] Enregistrement et lecture de vidéo encodée vp09

Non, mais il faut dire que je suis sous Xubuntu 16.04; vlc 2.2.2 et mpv 0.14.0

Alors, je ne sais pas pour les versions plus récentes.

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#4 Le 31/10/2024, à 15:08

JujuLand

Re : [Résolu] Enregistrement et lecture de vidéo encodée vp09

Bon,

J'ai réussi à éliminer le problème.

Tout d'abord, j'utilisais un script que j'avais fait il y a environ 2 ans (le source est en fin de post), qui me permet de faire plusieurs enregistrements en une seule commande. Le problème que j'ai eu était le paramètre utilisé pour yt-dlp dans le script :

yt-dlp -f mp4 $url

Ce paramètre a toujours fonctionné, jusqu'à il y a peu. Mais avec mes dernières vidéos, il utilisait vp09 pour la vidéo, et ça coinçait. En faisant un test directement et sans le paramètre, le fichier, généré sous Xubuntu 22.04, était un webm et était illisible sur ma machine en 16.04 (trop grand ...)
Je me suis donc attelé à réduire la taille en utilisant des paramètres différents :
-  137 puis 136 pour la vidéo
-  251 pour l'audio (aucun changement)
Ces paramètres faisant que le fichier est un mkv et non un webm.

beatrice@hp15-ubuntu:~$ yt-dlp -f 136+251 https://youtu.be/1Gwt18hde4w
[youtube] Extracting URL: https://youtu.be/1Gwt18hde4w
[youtube] 1Gwt18hde4w: Downloading webpage
[youtube] 1Gwt18hde4w: Downloading ios player API JSON
[youtube] 1Gwt18hde4w: Downloading web creator player API JSON
[youtube] 1Gwt18hde4w: Downloading m3u8 information
[info] 1Gwt18hde4w: Downloading 1 format(s): 136+251
[download] Destination: Le Gardien du Temple Opus 2 : La Porte des Ténèbres - Acte III [1Gwt18hde4w].f136.mp4
[download] 100% of   19.37MiB in 00:00:02 at 7.96MiB/s
[download] Destination: Le Gardien du Temple Opus 2 : La Porte des Ténèbres - Acte III [1Gwt18hde4w].f251.webm
[download] 100% of    1.11MiB in 00:00:00 at 7.65MiB/s
[Merger] Merging formats into "Le Gardien du Temple Opus 2 : La Porte des Ténèbres - Acte III [1Gwt18hde4w].mkv"
Deleting original file Le Gardien du Temple Opus 2 : La Porte des Ténèbres - Acte III [1Gwt18hde4w].f136.mp4 (pass -k to keep)
Deleting original file Le Gardien du Temple Opus 2 : La Porte des Ténèbres - Acte III [1Gwt18hde4w].f251.webm (pass -k to keep)

Sous Xubuntu 22.04 :
La vidéo fonctionne correctement avec vlc. Restent , sous Xuubuntu 22.04, quelques messages d'erreur avec vlc mais qui ne sont pas bloquants :

beatrice@hp15-ubuntu:~$ vlc Le\ Gardien\ du\ Temple\ Opus\ 2\ :\ La\ Porte\ des\ Ténèbres\ -\ Acte\ III\ \[1Gwt18hde4w\].mkv
VLC media player 3.0.20 Vetinari (revision 3.0.20-0-g6f0d0ab126b)
[0000650b3c14a550] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
[00007c458cc14720] avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding
[h264 @ 0x7c458cce6080] Failed setup for format vdpau: hwaccel initialisation returned error.
[00007c458cc14720] avcodec decoder error: existing hardware acceleration cannot be reused
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/r600_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0

Ce n'est pas la même histoire avec parole, là, la vidéo ne fonctionne pas et on a des messages d'erreurs :

beatrice@hp15-ubuntu:~$ xdg-open Le\ Gardien\ du\ Temple\ Opus\ 2\ :\ La\ Porte\ des\ Ténèbres\ -\ Acte\ III\ \[1Gwt18hde4w\].mkv
beatrice@hp15-ubuntu:~$ 
(parole:93610): GStreamer-CRITICAL **: 14:08:42.167: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.168: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.189: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.189: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.189: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.189: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.189: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.189: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.189: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.190: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.190: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.190: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.190: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.190: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.190: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.190: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.190: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.190: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.191: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.191: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.191: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.191: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.191: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.191: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.191: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.191: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.192: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.192: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.192: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.192: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.192: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.192: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.192: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.192: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.210: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.210: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.210: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.210: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.210: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.210: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.211: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.211: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.211: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.211: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.211: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.211: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.212: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.212: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.212: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.212: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.212: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.212: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.213: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.213: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.213: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.213: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.213: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.213: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.214: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.214: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.214: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.214: range start is not smaller than end for `GstIntRange'

(parole:93610): GStreamer-CRITICAL **: 14:08:42.215: gst_value_collect_int_range: assertion 'collect_values[0].v_int < collect_values[1].v_int' failed

(parole:93610): GStreamer-CRITICAL **: 14:08:42.215: range start is not smaller than end for `GstIntRange'

Sous Xubuntu 16.04
9a fonctionne correctement sous vlc, et ici pas d'erreur:

alain@Gramps-JujuLand2:~/Bureau$ vlc Le\ Gardien\ du\ Temple\ Opus\ 2\ :\ La\ Porte\ des\ Ténèbres\ -\ Acte\ III\ \[1Gwt18hde4w\].mkv 
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
[000000000212b148] core libvlc: Lancement de vlc avec l'interface par défaut. Utilisez « cvlc » pour démarrer VLC sans interface.
[00007f7b04c0caf8] avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding.
QObject::~QObject: Timers cannot be stopped from another thread

Avec parole, ça fonctionne, avec une erreur non bloquante:

alain@Gramps-JujuLand2:~/Bureau$ parole Le\ Gardien\ du\ Temple\ Opus\ 2\ :\ La\ Porte\ des\ Ténèbres\ -\ Acte\ III\ \[1Gwt18hde4w\].mkv 
Protocol error: bad 3 (Window); Sequence Number 5
 Opcode (20, 0) = GetProperty
 Bad resource 1763729444 (0x69206024)
 at -e line 15.

Bref, on peut considérer que le problème est résolu malgre ces quelques messages d'erreur.
Ceci permettra peut-être de débloquer quelques utilisateurs bloqués comme moi ...

Voici donc le script qui me permet d'enregistrer plusieurs vidéos avec yt-dlp :

#!/bin/bash

progvers="1.01"
datvers="2024-10-30"

if [ -f ~/Bureau/ydlit.lst ]; then
        echo "\nydlit ${progvers} ${progdate} ${datvers} Alain Aupeix$"
        nano ~/Bureau/ydlit.lst
fi

if [ -f ~/Bureau/ydlit.lst ]; then
	ok=1
else
        echo -e "\nydlit ${progvers} ${progdate} ${datvers} Alain Aupeix"
        echo -e "Attention: Fichier ~/Bureau/ydlit.lst non trouvé!"
	sleep 2
        nano  ~/Bureau/ydlit.lst
fi

if [ "x$1" != "x" ];then
   cd $1
else
   cd ~/Vidéos
fi

for url in $(cat ~/Bureau/ydlit.lst); do
    date +'%d-%m-%y %R'
#   /usr/bin/yt-dlp -f mp4 $url
    /usr/bin/yt-dlp -f 136+251 $url
done

if [ -f ~/Bureau/ydlit.lst ]; then
   rm ~/Bureau/ydlit.lst 
fi

Voila ...
A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#5 Le 01/11/2024, à 19:30

JujuLand

Re : [Résolu] Enregistrement et lecture de vidéo encodée vp09

Voici une version du script qui traite youtube, francetv et arte.

#!/bin/bash

progvers="1.10"
datvers="2023-11-01"

if [ -f ~/Bureau/ydlit.lst ]; then
        echo -e "\nydlit ${progvers} ${progdate} ${datvers} Alain Aupeix"
        nano ~/Bureau/ydlit.lst
fi

if [ -f ~/Bureau/ydlit.lst ]; then
	ok=1
else
        echo -e "\nydlit ${progvers} ${progdate} ${datvers} Alain Aupeix"
        echo -e "Attention: Fichier ~/Bureau/ydlit.lst non trouvé!"
	sleep 2
        nano  ~/Bureau/ydlit.lst
fi

if [ "x$1" != "x" ];then
   cd $1
else
   cd ~/Vidéos
fi

if [ -f ~/Bureau/ydlit.lst ]; then
   for url in $(cat ~/Bureau/ydlit.lst); do
       echo " -------------------------------------"
       echo -e $url
       date +'%d-%m-%y %R'
       dest=${url:12:9}
       if [ $dest = "france.tv" ];then
          /usr/bin/yt-dlp -f hls-5398+hls-audio-aacl-96-Audio_Français $url
       fi
       dest=${url:12:7}
       if [ $dest = "arte.tv" ];then
          vid=$(yt-dlp -F $url |grep 1280|grep Français|cut -d: -f2| awk '{print $1}')
          aud=$(yt-dlp -F $url |grep audio|grep Français|grep -v Allemand|grep -v confort|grep -v audiodescription|cut -d: -f2| awk '{print $1}')
          /usr/bin/yt-dlp -f ${vid}+${aud} $url
       fi
       dest=${url:2:8}
       if [ $dest = "youtu.be" ];then
          /usr/bin/yt-dlp -f 136+251 $url
       fi
   done

   if [ -f ~/Bureau/ydlit.lst ]; then
      rm ~/Bureau/ydlit.lst 
   fi
else
   echo " "
fi

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#6 Le 18/11/2024, à 18:15

JujuLand

Re : [Résolu] Enregistrement et lecture de vidéo encodée vp09

Et maintenant une version qui inclus en plus lcp.

#!/bin/bash

progvers="1.12"
datvers="2024-11-18"

if [ -f ~/Bureau/ydlit.lst ]; then
        echo -e "\n${gGre}ydlit ${gCya}${progvers} ${progdate}${gYel}${datvers}${gGre} Alain Aupeix${noColor}"
        nano ~/Bureau/ydlit.lst
fi

if [ -f ~/Bureau/ydlit.lst ]; then
	ok=1
else
        echo -e "\n${gGre}ydlit ${gCya}${progvers} ${progdate}${gYel}${datvers}${gGre} Alain Aupeix${noColor}"
        echo -e "${gRed}Attention:${gCya} Fichier ~/Bureau/ydlit.lst non trouvé!$noColor"
	sleep 2
        nano  ~/Bureau/ydlit.lst
fi

if [ "x$1" != "x" ];then
   cd $1
else
   cd ~/Vidéos
fi

if [ -f ~/Bureau/ydlit.lst ]; then
   for url in $(cat ~/Bureau/ydlit.lst); do
       echo " -------------------------------------"
       echo -e ${gMag}$url${noColor}
       date +'%d-%m-%y %R'
       # lcp.fr >> youtube.com
       dest=${url:8:17}
       if [ $dest = "98kot.r.sp1-brevo" ];then
          wget $url -O /tmp/lcp.tmp
          refresh=$(cat /tmp/lcp.tmp|grep refresh)
          url=${adress:36:43}
       fi
       if [ $dest = "france.tv" ];then
          /usr/bin/yt-dlp -f hls-5398+hls-audio-aacl-96-Audio_Français $url
       fi
       dest=${url:12:7}
       if [ $dest = "arte.tv" ];then
          vid=$(yt-dlp -F $url |grep 1280|grep Français|cut -d: -f2| awk '{print $1}')
          aud=$(yt-dlp -F $url |grep audio|grep Français|grep -v Allemand|grep -v confort|grep -v audiodescription|cut -d: -f2| awk '{print $1}')
          /usr/bin/yt-dlp -f ${vid}+${aud} $url
       fi
       dest=${url:12:8}
       if [ $dest = "youtu.be" ] || [ $dest = "youtube." ];then
          /usr/bin/yt-dlp -f 136+251 $url
       fi
#   dailymotion ?
#       dest=${url:8:6}
#       if [ $dest = "lcp.fr" ];then
#          url=$(yt-dlp -F $url |grep www.dailymotion|cut -d" " -f4|cut -d? -f1)
#          vid=$(yt-dlp -F $url |grep 1280|cut -d: -f2| awk '{print $1}')
#          /usr/bin/yt-dlp -f $vid $url
#       fi
   done

   if [ -f ~/Bureau/ydlit.lst ]; then
      rm ~/Bureau/ydlit.lst 
   fi
else
   echo " "
fi

A+

Dernière modification par JujuLand (Le 19/11/2024, à 08:15)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#7 Le 19/11/2024, à 08:33

JujuLand

Re : [Résolu] Enregistrement et lecture de vidéo encodée vp09

Ajout de dailymotion ...

#!/bin/bash

progvers="1.12"
datvers="2024-11-18"

if [ -f ~/Bureau/ydlit.lst ]; then
        echo -e "\n${gGre}ydlit ${gCya}${progvers} ${progdate}${gYel}${datvers}${gGre} Alain Aupeix${noColor}"
        nano ~/Bureau/ydlit.lst
fi

if [ -f ~/Bureau/ydlit.lst ]; then
	ok=1
else
        echo -e "\n${gGre}ydlit ${gCya}${progvers} ${progdate}${gYel}${datvers}${gGre} Alain Aupeix${noColor}"
        echo -e "${gRed}Attention:${gCya} Fichier ~/Bureau/ydlit.lst non trouvé!$noColor"
	sleep 2
        nano  ~/Bureau/ydlit.lst
fi

if [ "x$1" != "x" ];then
   cd $1
else
   cd ~/Vidéos
fi

if [ -f ~/Bureau/ydlit.lst ]; then
   for url in $(cat ~/Bureau/ydlit.lst); do
       echo " -------------------------------------"
       echo -e ${gMag}$url${noColor}
       date +'%d-%m-%y %R'
       dest=${url:8:17}
       # lcp.fr >> youtube.com
       if [ "$dest" = "98kot.r.sp1-brevo" ];then
          wget $url -O /tmp/lcp.tmp
          refresh=$(cat /tmp/lcp.tmp|grep refresh)
          url=${refresh:46:43}
       fi
       if [ "$dest" = "france.tv" ];then
          /usr/bin/yt-dlp -f hls-5398+hls-audio-aacl-96-Audio_Français $url
       fi
       dest=${url:12:7}
       if [ "$dest" = "arte.tv" ];then
          vid=$(yt-dlp -F $url |grep 1280|grep Français|cut -d: -f2| awk '{print $1}')
          aud=$(yt-dlp -F $url |grep audio|grep Français|grep -v Allemand|grep -v confort|grep -v audiodescription|cut -d: -f2| awk '{print $1}')
          /usr/bin/yt-dlp -f ${vid}+${aud} $url
       fi
       dest=${url:12:8}
       if [ "$dest" = "youtu.be" ] || [ "$dest" = "youtube." ];then
          /usr/bin/yt-dlp -f 136+251 $url
       fi
       dest=${url:12:11}
       if [ "$dest" = "dailymotion" ];then
          /usr/bin/yt-dlp -f hls-720 $url
       fi
   done

   if [ -f ~/Bureau/ydlit.lst ]; then
      rm ~/Bureau/ydlit.lst 
   fi
else
   echo " "
fi

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#8 Le 19/11/2024, à 14:47

JujuLand

Re : [Résolu] Enregistrement et lecture de vidéo encodée vp09

Ajout de publicsenat

Et donc au final : tf1, ftv, arte, lcp, publicsenat, youtube et dailymotion

#!/bin/bash

progvers="1.13"
datvers="2024-11-19"

if [ -f ~/Bureau/ydlit.lst ]; then
        echo -e "\n${gGre}ydlit ${gCya}${progvers} ${progdate}${gYel}${datvers}${gGre} Alain Aupeix${noColor}"
        nano ~/Bureau/ydlit.lst
fi

if [ -f ~/Bureau/ydlit.lst ]; then
	ok=1
else
        echo -e "\n${gGre}ydlit ${gCya}${progvers} ${progdate}${gYel}${datvers}${gGre} Alain Aupeix${noColor}"
        echo -e "${gRed}Attention:${gCya} Fichier ~/Bureau/ydlit.lst non trouvé!$noColor"
	sleep 2
        nano  ~/Bureau/ydlit.lst
fi

if [ "x$1" != "x" ];then
   cd $1
else
   cd ~/Vidéos
fi

if [ -f ~/Bureau/ydlit.lst ]; then
   for url in $(cat ~/Bureau/ydlit.lst); do
       echo " -------------------------------------"
       echo -e ${gMag}$url${noColor}
       date +'%d-%m-%y %R'
       dest=${url:8:17}
       # lcp.fr >> youtube.com
       if [ "$dest" = "98kot.r.sp1-brevo" ];then
          wget $url -O /tmp/lcp.tmp
          refresh=$(cat /tmp/lcp.tmp|grep refresh)
          url=${refresh:46:43}
       fi
       if [ "$dest" = "france.tv" ];then
          /usr/bin/yt-dlp -f hls-5398+hls-audio-aacl-96-Audio_Français $url
       fi
       dest=${url:12:7}
       if [ "$dest" = "arte.tv" ];then
          vid=$(yt-dlp -F $url |grep 1280|grep Français|cut -d: -f2| awk '{print $1}')
          aud=$(yt-dlp -F $url |grep audio|grep Français|grep -v Allemand|grep -v confort|grep -v audiodescription|cut -d: -f2| awk '{print $1}')
          /usr/bin/yt-dlp -f ${vid}+${aud} $url
       fi
       dest=${url:12:8}
       if [ "$dest" = "youtu.be" ] || [ "$dest" = "youtube." ];then
          /usr/bin/yt-dlp -f 136+251 $url
       fi
       dest=${url:12:11}
       if [ "$dest" = "publicsenat" ];then
          /usr/bin/yt-dlp -f hls-2 $url
       fi
       dest=${url:12:11}
       if [ "$dest" = "dailymotion" ];then
          /usr/bin/yt-dlp -f hls-720 $url
       fi
       dest=${url:15:5}
       if [ "$dest" = "gulli" ];then
          vid=$(yt-dlp -F $url |grep 720x404|cut -d: -f2| awk '{print $1}')
          /usr/bin/yt-dlp -f $vid $url
       fi
   done

   if [ -f ~/Bureau/ydlit.lst ]; then
      rm ~/Bureau/ydlit.lst 
   fi
   if [ -f *temp.mp4 ]; then
          rm *temp.mp4
   fi
else
   echo " "
fi

Pour avoir des messages couleur, et non du chinois, utiliser ce script (colors) en le plaçant dans un dossier accessible avec $PATH, et lancez-le dans .profile comme ceci :
. colors (point + espace+colors)

#!/bin/bash

version=1.10
datvers=2018-01-28

if [ "x$1" = "x-v" ];then
   echo -e "ii\tcolors\t$version\t$datvers"
   exit
fi

# Définition des couleurs
# Arrière-plan
export bBla='\033[40m'
export bRed='\033[41m'
export bGre='\033[42m'
export bYel='\033[43m'
export bBlu='\033[44m'
export bMag='\033[45m'
export bCya='\033[46m'
export bWhi='\033[47m'
# Normal
export fBla='\033[30m'
export fRed='\033[31m'
export fGre='\033[32m'
export fYel='\033[33m'
export fBlu='\033[34m'
export fMag='\033[35m'
export fCya='\033[36m'
export fWhi='\033[37m'
# Gras
export gBla='\033[1;30m'
export gRed='\033[1;31m'
export gGre='\033[1;32m'
export gYel='\033[1;33m'
export gBlu='\033[1;34m'
export gMag='\033[1;35m'
export gCya='\033[1;36m'
export gWhi='\033[1;37m'
# Sans couleur
export noColor='\033[0m'
# Déplacements sur l'écran:
# home
export mho='\033[0H'
# end
export men='\033[0F'
# left
export mle='\033[0D'
# right
export mri='\033[0C'
# up
export mup='\033[0A'
# down
export mdo='\033[0B'
# Gestion curseur:
# hidden
export chid="\033[?25l"
# see
export csee="\033[?25h"

A+

Dernière modification par JujuLand (Le 19/11/2024, à 15:00)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#9 Le 22/11/2024, à 19:29

moko138

Re : [Résolu] Enregistrement et lecture de vidéo encodée vp09

JujuLand a écrit :

J'ai enregistré une vidéo avec yt-dlp sans problème, sauf que le codec vp09 n'est pas pris en charge, et que je ne peux pas la lire.
(...)
J'ai donc enregistré séparément vidéo en mp4 et audio en mp3 et ai essayé de les enregistrer ensuite ensemble, mais je n'ai pas réussi.
Avec cin, je n'ai pas compris comment faire, avec openshot, je n'ai pas réussi ...

Y aurait-il un moyen, avec peut -être un autre logiciel ?

Avec ffmpeg (ou bien avconv), je le fais régulièrement :

Réenregistrer le fichier source, sans le son :

ffmpeg -i "source"  -an   "source-an.mp4"

Réenregistrer le fichier source, sans l'image :

ffmpeg -i "source"  -vn  -acodec libmp3lame  "source-vn.mp3"

(Peut-être qu'avec les versions modernes, l'option -acodec libmp3lame n'est plus nécessaire ?)

Assembler les deux :

ffmpeg -i "source-an.mp4" -i "source-vn.mp3"  -c copy -map 0:0 -map 1:0   "sortie.mp4"

.
Nota : les guillemets ne sont pas nécessaires, sauf s'il y a des espaces dans les noms de fichiers ou de chemins.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne