Combiner youtube-dl et omxplayer : pas de son

Vous venez de déballer votre Raspberry Pi et vous vous posez des questions ? C'est ici que ça se passe !

Modérateurs : Francois, EVOTk

Danxter
Messages : 10
Enregistré le : sam. 1 avr. 2017 17:23

Combiner youtube-dl et omxplayer : pas de son

Message par Danxter » sam. 1 avr. 2017 17:44

Bonjour,

Ayant craqué récemment pour un Raspberry Pi 3, j'ai voulu outrepasser les lags des vidéos Youtube plein écran sur Chromium en passant par omxplayer. J'ai donc fouillé sur le net et ai trouvé une syntaxe qui semblait correspondre à mes attentes :

sudo omxplayer $(youtube-dl -f best -g URL)

Cela fonctionne plutôt bien MAIS avec "seulement" du 720p. Sauf que la framboise en a sous le capot et je veux forcer le 1080p lorsqu'il est disponible. Indication : même si le 1080 est disponible dans le menu classique de Youtube lors de la navigation, il n'apparait pas dans les formats avec audio mais dans un format "video only" lorsqu'on liste les modes disponibles avec "youtube-dl -F URL".

J'ai donc repris mes recherches et ai vu qu'on pouvait mixer une piste video avec une piste sonore. J'ai donc modifié ma ligne de commande :

sudo omxplayer $(youtube-dl -f bestvideo+bestaudio -g URL)

Résultat : vidéo en 1080p parfaite mais... Muette! J'ai donc cherché à forcer la piste avec [ext=m4a], forcer l'audio sur le HDMI (-o hdmi) : rien.
J'ai cherché à n'utiliser que youtube-dl

youtube-dl -f bestvideo+bestaudio -g URL

Ca fonctionne mais me met en garde comme quoi les formats ne sont pas vraiment compatibles et que j'aurais un fichier .mkv en sortie. Comme je n'ai rien contre les mkv, ça ne me pose pas de problème. Le fichier est alors extrait et finalisé puis fonctionne parfaitement avec omxplayer.

J'ai installé la dernière version non-pip de youtube-dl, trouvé la dernière build d'omxplayer, mis à jour firmware, distribution, kernel, installé libav-tools : ça ne fonctionne toujours pas...

D'où ma question : y'a-t-il un moyen de faire fonctionner "sudo omxplayer $(youtube-dl -f bestvideo+bestaudio -g URL)" en modifiant cette ligne ou en installant des logiciels? Le but recherché est de pouvoir lire une vidéo sans que cela ne nécessite de tout télécharger sur la framboise.

Merci par avance.

manau
Raspinaute
Messages : 135
Enregistré le : ven. 4 mars 2016 20:53
Localisation : Seine Maritime

Re: Combiner youtube-dl et omxplayer : pas de son

Message par manau » dim. 2 avr. 2017 00:27

bonjour,
Le but recherché est de pouvoir lire une vidéo sans que cela ne nécessite de tout télécharger sur la framboise.
Pour ne pas utiliser toute la place de la raspberry, pouvoir lire des vidéos youtube et d'autres comme des films et séries, alors il y aurait kodi (OSMC, OpenElec, LibreElec) ou plex pour faire un media center.
par exemple, avec OSMC, c'est possible d'installer youtube, d'autre application ou même d'autres OS en plus . Tu pourras en plus brancher des disques externes pour lire à partir de la raspberry tout le contenu.

Au début j'avais commencé à lire les vidéos automatiquement sur raspbian avec omxplayer mais, suivant les vidéos, il y avait quelques problèmes aussi . Maintenant c'est beaucoup mieux.

Manau

Danxter
Messages : 10
Enregistré le : sam. 1 avr. 2017 17:23

Re: Combiner youtube-dl et omxplayer : pas de son

Message par Danxter » dim. 2 avr. 2017 13:33

Merci de ta réponse.

Ce sont en effet des solutions que j'ai vues sur le net mais ça me semble... Trop facile. Mon objectif sur le Raspberry est de bricoler sur le système et apprendre des choses (en plus d'avoir un PC sous Linux pour une somme "dérisoire").

Je n'ai pas été très clair là-dessus sur mon premier messages, c'est vrai, mais si ensuite je pouvais créer un script par paliers et le lier à chromium pour lire les vidéos en plein écran, ça serait pas mal.

Sauf que je ne comprends pas pourquoi omxplayer ne peut pas mixer son et vidéo envoyés par youtube-dl. Je me dis que c'est parce que omxplayer ne peut recevoir qu'un fichier en une seule instance et favorise le flux vidéo. Mais je trouve bizarre que le player n'arrive pas à recevoir ces deux flux et les interpréter. Ou alors c'est youtube-dl qui ne peut renvoyer une adresse unique comportant les deux flux. Bref, c'est un mystère que j'aimerais bien résoudre... Et rien sur le net à ce propos, à croire que personne ne cherche à avoir la qualité optimale en stream lors d'une navigation Internet classique...

manau
Raspinaute
Messages : 135
Enregistré le : ven. 4 mars 2016 20:53
Localisation : Seine Maritime

Re: Combiner youtube-dl et omxplayer : pas de son

Message par manau » dim. 2 avr. 2017 17:16

le problème c'est que tu ne peux pas transformer une vidéo de basse qualité en haute qualité. si c'est du streaming, les images et le son seront toujours aussi mauvais en 720p qu'en 1080p. il y aura aussi le problème de l'attente de chargement et de lecture de la vidéo a gérer puisque c'est lu directement à partir d'un lien web (youtube). ça sera moins rapide que si c'est une vidéo sur un disque dur ou sur un autre support externe.

Ce site donne des aides pour omxplayer. Par exemple, pour lire une vidéo, j'utilisais :

Code : Tout sélectionner

sudo omxplayer -o hdmi -r mavideo.mkv 
si le son ne fonctionne pas c'est peut-être à cause des commandes omxplayer ou youtube -dl. il y a peut être besoin juste de rajouter ou enlever des petites choses. je ne connais pas bien les commandes mais par exemple tu pourrais essayer ça si tu le l'a pas déjà testé :

Code : Tout sélectionner

sudo omxplayer -o hdmi -r $(youtube-dl -g URLvideo)
Pour éviter que les vidéos enregistrées prennent de la place sur la raspberry, sur ce site, ils conseillent d'accéder au répertoire voulu avec la commande "cd" juste avant d’exécuter la commande pour la lecture donc ça pourrait être très bien un disque externe et ça ne prendrait aucune place sur la raspberry.

Manau

Danxter
Messages : 10
Enregistré le : sam. 1 avr. 2017 17:23

Re: Combiner youtube-dl et omxplayer : pas de son

Message par Danxter » lun. 3 avr. 2017 10:32

Je ne veux rien transformer du tout. Je veux juste accéder à la fois à la meilleure piste son et à la meilleure piste vidéo accessibles en streaming.

Pour une vidéo accessible sur Youtube en 1080p60+audio, la deuxième commande que tu donnes n'accèdera qu'à du 720p+audio. J'ai utilisé cette commande :
[code]sudo youtube-dl -F Video_URL[/code]

Ca m'a listé tout ce qui était disponible depuis Youtube de la plus mauvaise à la meilleure qualité. Le logiciel considère que la meilleure qualité ("-f best" comme paramètre par défaut) est du 720p+audio contenus dans le même fichier. Lorsqu'on regarde plus haut, on trouve des pistes audio seules et des pistes vidéo seules. On a donc une piste audio .m4a et et une piste vidéo 1080p60.
Or, le paramètre "-f bestvideo+bestaudio" permet d'associer à la fois la meilleure piste vidéo et la meilleure piste audio. Pourquoi est-ce que lorsque j'utilise ce paramètre en appelant seulement youtube-dl :
[code]sudo youtube-dl -f bestvideo+bestaudio -g Video_URL[/code] --> ça télécharge un fichier .mkv qui associe les deux. C'est voulu donc ok.

Alors que quand j'utilise la même commande par le biais d'omxplayer :
[code]sudo omxplayer $(youtube-dl -f bestvideo+bestaudio -g Video_URL)[/code] --> seule la vidéo se lance en stream, pas l'audio.

Voilà ce que je trouve illogique.

manau
Raspinaute
Messages : 135
Enregistré le : ven. 4 mars 2016 20:53
Localisation : Seine Maritime

Re: Combiner youtube-dl et omxplayer : pas de son

Message par manau » lun. 3 avr. 2017 11:51

peut-être que la sortie audio de omxplayer est mal configurer. elle sort par la raspberry au lieu de ta télé. il faudrait peut-être que tu rajoutes "hdmi_drive = 2" dans config.txt si tu utilises le hdmi.

Manau

Danxter
Messages : 10
Enregistré le : sam. 1 avr. 2017 17:23

Re: Combiner youtube-dl et omxplayer : pas de son

Message par Danxter » lun. 3 avr. 2017 12:38

Sauf que quand j'utilise omxplayer sur un fichier local, le son fonctionne très bien. Et même en forçant le HDMI avec la commande "-o hdmi" j'ai le même souci.
Et même, ça ne peut pas venir de ça puisque quand omxplayer lance la lecture de la vidéo, ça ne m'affiche pas quel codec est utilisé pour décoder le son (ce qui fait que l'audio n'est pas pris en compte par omxplayer).

Edit : je crois avoir trouvé la raison! En tapant la commande :

sudo youtube-dl -f bestvideo+bestaudio -g Video-URL

Cela doit me renvoyer une adresse. Sauf que ça me renvoie 2 URL. Ca veut dire qu'omxplayer lit la première mais pas la seconde. C'est donc omxplayer qui ne sait pas lire 2 flux venant de youtube-dl en même temps.

clode666
Messages : 42
Enregistré le : ven. 24 févr. 2017 13:39

Re: Combiner youtube-dl et omxplayer : pas de son

Message par clode666 » mar. 4 avr. 2017 06:31

Hello ,

Voici la commande que j utilise :

omxplayer -o hdmi `youtube-dl -f FORMAT [http://youtube.com?]`

FORMAT est à remplacer par la qualité souhaite (720p 1080p ..) pour connaître la qualité propose par une vidéo j utilise :
youtube-dl -F [http://youtube.com?]

Aucun soucis de son en hdmi sur RPI3

@+

Danxter
Messages : 10
Enregistré le : sam. 1 avr. 2017 17:23

Re: Combiner youtube-dl et omxplayer : pas de son

Message par Danxter » mar. 4 avr. 2017 19:35

Merci,

Malheureusement, cette commande ne fonctionne pas chez moi; voici les messages d'erreur que j'obtiens :

WARNING: The url doesn't specify the protocol, trying with http
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/local/bin/youtube-dl/__main__.py", line 19, in <module>
File "/usr/local/bin/youtube-dl/youtube_dl/__init__.py", line 464, in main
File "/usr/local/bin/youtube-dl/youtube_dl/__init__.py", line 454, in _real_main
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1884, in download
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 772, in extract_info
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 833, in process_ie_result
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 761, in extract_info
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 428, in extract
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 1670, in _real_extract
File "/usr/lib/python2.7/urlparse.py", line 143, in urlparse
tuple = urlsplit(url, scheme, allow_fragments)
File "/usr/lib/python2.7/urlparse.py", line 191, in urlsplit
raise ValueError("Invalid IPv6 URL")
ValueError: Invalid IPv6 URL

manau
Raspinaute
Messages : 135
Enregistré le : ven. 4 mars 2016 20:53
Localisation : Seine Maritime

Re: Combiner youtube-dl et omxplayer : pas de son

Message par manau » mar. 4 avr. 2017 20:42

si tu es en local (pas en hdmi) ce n'est pas :

Code : Tout sélectionner

sudo omxplayer -o hdmi
il faudrait utilisé soit :

Code : Tout sélectionner

sudo omxplayer -o local
ou sinon :

Code : Tout sélectionner

sudo omxplayer -o both
par exemple, pour la commande de cloclo666 :

Code : Tout sélectionner

omxplayer -o hdmi `youtube-dl -f FORMAT [http://youtube.com?]`
il faudrait remplacer au minimum :

Code : Tout sélectionner

omxplayer -o local `youtube-dl -f FORMAT [http://youtube.com?]
ou

Code : Tout sélectionner

omxplayer -o both `youtube-dl -f FORMAT [http://youtube.com?]`
Manau

Répondre

Retourner vers « Débutants »