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.

#26 Le 23/09/2015, à 07:33

SESTAY

Re : [Résolu] Cherche player/encoder en alternative à VLC

bonjour,
un petit tuyau via http://trac.ffmpeg.org/wiki/Create%20a% … m%20images
Using a single image as an input

If you want to create a video out of just one image, this will do (output video duration is set to 30 seconds with -t 30):

ffmpeg -loop 1 -i img.png -c:v libx264 -t 30 -pix_fmt yuv420p out.mp4

une modeste participation à ffDiaporama Changement d'adresse du site http://tvb2016.pagesperso-orange.fr/ff/co/siteWeb.html.
Actuellement le projet ffDiaporama est en stand by, si des amateurs veulent s'y coller, ils seront les bienvenues.

Hors ligne

#27 Le 24/09/2015, à 09:31

adgenodux

Re : [Résolu] Cherche player/encoder en alternative à VLC

lol  aaaaahhh... enfin une base de travail déterminante...

Alors, partant de ce lien je trouve ceci en bas de page:

Adding audio

If you want to add audio (e.g. audio.wav) to one "poster" image, you need -shortest to tell it to stop after the audio stream is finished. The internal AAC encoder is used in this example, but you can use any other supported AAC encoder as well:

ffmpeg -loop 1 -i img.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest out.mp4

j'adapte à mes entrées, je colle la commande à la place du code généré par traGtor, je teste mais ça ne fonctionne toujours pas et je n'ai même pas la description de l'erreur en sortie hmm
Soit, je creuse sur l'option "Loop" que j'avais déjà entre aperçue précédemment et je trouve CECI avec :

avconv -loop 1 -i IMAGE.jpg \
       -i AUDIO.wav \
       -c:v libx264 -tune stillimage -pix_fmt yuv420p -s 854x480 \
       -c:a aac -strict experimental -b:a 192k -shortest OUTPUT.mp4

J'adapte, je teste... encore une erreur mais peu détaillée dans la sortie... Grrrr hmm
Je compare alors ce code à un code généré par TraGtor, je remarque que dans traGtor, les entrées/sorties sont entourées de guillemets et la commande est créée en une seule ligne sans séparateurs "\"...

Je reconstruis mon code, j'adapte la résolution (320x200), le bitrate (128k) pour arriver à ceci:

avconv -loop 1 -i "/home/sacha/Bureau/DJ_Sacha.jpg" -i "/home/sacha/Bureau/01Piste1.wma" -c:v libx264 -tune stillimage -pix_fmt yuv420p -s 320x200 -c:a aac -strict experimental -b:a 128k -shortest "/home/sacha/Bureau/test_traGtor.mp4"

... et là, MIRACLE, ça commence enfin à encoder lol

Je vérifie la conformité du format en envoyant mon fichier mp4 généré sur youtube, ça passe aussi. Je n'ai pas publié car c'est un fichier test mais si youtube l'a chargé, c'est que ça doit être bon sinon ça ne se serait pas uploadé...

Ouf, enfin une grosse épine hors du piéd, un grand merci à tous et en particulier Sestay pour le "tuyau" et ta ténacité qui m'auront permis d'enfin aboutir...

La seule chose qui me gène un tout petit peu, c'est que je n'ai aucune idée du paramétrage à opérer dans traGtor pour qu'il génère la commande sous cette forme mais qu'importe, je vais de toutes façons faire un petit script exécutable depuis le bureau et je verrai plus tard pour le mode graphique, au moins, on avance...

Reste maintenant à intégrer l'extraction du cd audio dans le process, je reviendrai commenter la chose :-)

Encore un grand merci car après presque 15 jours de galère, je ne pouvais plus continuer à consacrer autant de temps sans réelle perspective et je m’apprêtais à repasser sous win pour ce process hmm

A suivre...

Hors ligne

#28 Le 24/09/2015, à 10:43

SESTAY

Re : [Résolu] Cherche player/encoder en alternative à VLC

Bonjour,
pourquoi extraire les pistes ?
En ouvrant le cd avec le gestionnaire de fichier les fichiers son apparaissent (Trak 1.wav, Trak 2.wav etc).
Il suffit donc de pointer sur les fichier du cd.


une modeste participation à ffDiaporama Changement d'adresse du site http://tvb2016.pagesperso-orange.fr/ff/co/siteWeb.html.
Actuellement le projet ffDiaporama est en stand by, si des amateurs veulent s'y coller, ils seront les bienvenues.

Hors ligne

#29 Le 24/09/2015, à 11:49

adgenodux

Re : [Résolu] Cherche player/encoder en alternative à VLC

SESTAY a écrit :

Bonjour,
pourquoi extraire les pistes ?

on peut faire autrement ?

SESTAY a écrit :

En ouvrant le cd avec le gestionnaire de fichier les fichiers son apparaissent (Trak 1.wav, Trak 2.wav etc).
Il suffit donc de pointer sur les fichier du cd.

de fait, mais comme il faut associer l'image pour faire un final en mp4, n'est ce pas pareil d'extraire ou de lire ?

l'extraction pourrait constituer une étape inutile ?

alors dans ce cas, comment dire à avconv de lire le fichier plutôt que l'extraire ?

Hors ligne

#30 Le 24/09/2015, à 19:27

adgenodux

Re : [Résolu] Cherche player/encoder en alternative à VLC

En attendant, voici le script que j'ai composé...

Ne vous effrayez pas, bien qu'il ma pris du temps, il est très simple et il y a plus de commentaires que de code wink

C'est donc un script qui extrait la piste Track1.wav du cd et lui associe l'image DJ_Sacha.jpg en réencodant en mp4. Cela fait, il ouvre la page Youtube puis le gestionnaire dans le dossier du fichier pour faire un glisser/déposer dans le navigateur...

Bon, j'ai poussé un peu mais ça s'adresse à quelqu'un qui a presque une aversion pour les ordis donc j'ai simplifié pour lui au max, jusqu'à ouvrir le gestionnaire de fichiers APRES le navigateur pour que la fenêtre donc du gestionnaire soit au dessus de celle du navigateur pour que mon ami n'ait plus qu'à faire un glisser/déposer d'une fenêtre sur l'autre et je cherche même un moyen de faire la "pré"-sélection du fichier pour qu'il n'ait vraiment plus qu'à le passer d'une fenêtre à l'autre...

Donc c'est très personnalisé pour lui mais ça fonctionne et c'est vraiment simple, si ça peut servir à d'autres, il faut naturellement adapter à vos chemins et noms de fichiers puis personnaliser à vos souhaits mais c'est déjà une base fonctionnelle en l'état...

Pour l'info, après l'encodage, à l'ouverture de firefox sur la page youtube, une erreur "GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed" peut apparaître dans la console mais cela serait un bug de glib, en rapport avec firefox  et n'a en tous cas aucune incidence sur le process...

voilà donc le script...

Have fun comme on dit dans ces cas là cool

#!/bin/bash


# Script d'extraction d'un fichier audio depuis un cd,
# association d'une image et réencodage 
# en mp4 à destination de Youtube à l'aide 
# de Avconv 
# Adgenodux 2015


# Initialisation variable d'exécution du script
# ----------------------------------------------------
continue="o"

# Boucle d'exécution du script
# on accepte un o minuscule ou majuscule
# ---------------------------------------------------
while [ "$continue" == "o" -o "$continue" == "O" ]
do
	# Initialisation variable d'entrée dans la boucle
	# d'introducton du nom du set par l'utilisateur
	# -------------------------------------------------------
	acceptName="o"

	# Boucle d'introduction du nom du set par l'utilisateur
	# on accepte un o minuscule ou majuscule
	# ----------------------------------------------------------------
	while [ "$acceptName" == "o" -o "$acceptName" == "O" ]
	do
		echo "Entrez le nom du set à créer: "
		echo "Format: [PERIODE] [dj sacha] [STYLE] [part N°_#]"
		echo "Exemple: 92 ~ 93 dj sacha Techno House part 1_3"
		read -er setName
		echo "Vous avez chosi "$setName". "

		 # choix de garder ou changer le nom choisi
		# si non, on relance la boucle
		# ----------------------------------------------------
		echo "Voulez-vous changer ? o/n "
		read -er acceptName
	done

	echo "------------------------------------------------------"

	# Début des processus d'extraction et de conversion
	echo "lancement process"
	echo ""
	sleep 2

	# Récupération de la date 
	# à ajouter au nom final
	# ------------------------------
	echo "Récupération de la date..."
	TIMESTAMP=$(date +"%Y.%m.%d_%H.%M")
	echo ""
	echo $TIMESTAMP
	echo ""
	echo "Le nom final du set sera : " "$TIMESTAMP"_"$setName"
	echo ""

	# Process d'extraction et d'encodage
	# --------------------------------------------
	echo "Extraction et encodage, veuillez patienter..."
	echo ""

	# commande Avconv d'extraction du fichier Track1.wav sur cd
	# puis encodage en mp4 128k avec ajout de l'image de fond
	# /home/sacha/Bureau/sets/DJ_Sacha.jpg en 320x200
	# dans le dossier
	# /home/sacha/Bureau/sets/$TIMESTAMP_$setName.mp4
	# à destination d'une chaine Youtube.
 	# Le nom du fichier est composé du nom entré par l'utilisateur 
	# en y ajoutant la date et l'heure devant pour pertinence de tri
	# ($TIMESTAMP_$setName.mp4)
	# ---------------------------------------------------------------------------
	avconv -loop 1 -i "/home/sacha/Bureau/sets/DJ_Sacha.jpg" -i "/run/user/1000/gvfs/cdda:host=sr0/Track 1.wav" -c:v libx264 -tune stillimage -pix_fmt yuv420p -s 320x200 -c:a aac -strict experimental -b:a 128k -shortest "/home/sacha/Bureau/sets/$TIMESTAMP_$setName.mp4"
	echo ""

	echo "Encodage terminé !"
	echo ""

	echo "------------------------------------------------------"
	echo ""

	# Ouverture de la page de transfert Youtube PUIS par dessus,
	# un gestionnaire de fichiers ouvert dans le dossier du fichier
	# à transférer de manière à ne plus faire qu'un glisser/déposer
	# ----------------------------------------------------------------------------
	echo "Ouverture de la page de transfert Youtube et du gestionnaire de fichiers..."
	sleep 3
	echo "Quand ils seront ouverts, Glissez/Déposez le fichier utile dans la fenêtre Youtube pour le transfert..."
	echo ""
	sleep 5
	firefox https://www.youtube.com/upload
	pcmanfm /home/sacha/Bureau/sets/

	# Initialisation variable de poursuite du script
	# ------------------------------------------------------
	echo "Encoder un autre set ? (o/n)"
	read -er continue
	echo "------------------------------------------------------"
done

Dernière modification par adgenodux (Le 24/09/2015, à 20:17)

Hors ligne

#31 Le 27/09/2015, à 11:36

adgenodux

Re : [Résolu] Cherche player/encoder en alternative à VLC

Bon,

Depuis hier j'ai remarqué un nouveau message d'erreur qui apparait quand le script ouvre le navigateur si celui-ci n'était pas déjà ouvert.

/usr/share/themes/Lubuntu-default/gtk-2.0/apps/thunar.rc:55: error: invalid string constant "thunar-statusbar", expected valid string constant
[1491:1491:0926/210311:ERROR:sandbox_linux.cc(345)] InitializeSandbox() called with multiple threads in process gpu-process

Je ne l'avais pas encore remarqué car je testais chaque fois le script avec le navigateur déjà ouvert et le script ouvrait automatiquement un nouvel onglet de sorte que de cette manière, ça fonctionne parfaitement.

Par contre, si je lance le script sans que le navigateur ne soit déjà ouvert, l'erreur se produit, indépendamment du navigateur (testé avec Firefox et Google Chrome)

Si j'ai appelé Google Chrome, l'erreur bloque le script jusqu'à ce que je fasse un CTRL+ C dans la console, ce qui permet au script de se poursuivre mais qui au passage ferme alors la fenêtre du navigateur... Si j'ai appelé Firefox, l'action CTRL + C ferme alors le navigateur ET le script lui-même au lieu de le continuer comme quand je lance Chrome hmm

Il faut donc lancer le navigateur AVANT le script pour que ce dernier se déroule correctement...

Etrange comme comportement vous ne trouvez pas ?

Hors ligne

#32 Le 28/09/2015, à 22:21

adgenodux

Re : [Résolu] Cherche player/encoder en alternative à VLC

Bien,

Ben je pense que je peux clore le sujet, tout du moins pour la question de remplacer VLC.

Pour la partie encodage, c'est donc via un script qui utilise Avconv et que j'ai un peu arrangé depuis la version précédente en ajoutant un peu de Zenity, principalement pour pouvoir "pré"-sélectionner le fichier à glisser/déposer sur la page d'upload Youtube et au passage, j'ai fait une petite box d'encodage du nom du set et une autre pour afficher le nom à copier/coller comme titre du set dans Youtube, ça fait un peu plus joli que depuis la console où j'ai aussi ajouté un peu de couleur.

Voici le script :

#!/bin/bash

# Script d'extraction d'un fichier depuis un cd, 
# association d'une image et réencodage
# en mp4 à destination de Youtube à l'aide
# de Avconv
# Adgenodux 2015

# Initialisation variable d'exécution du script
# -----------------------------------------------------------------------
continue="o"

# Initialisation variables couleurs
vertClair='\e[1;32m'
bleuClair='\e[1;34m'
orange='\e[1;33m'
neutre='\e[0;m'

read -p "S'il n'est pas déjà actif, démarrez le navigateur puis revenez ici et appuyez   sur ENTER pour continuer..."

# Boucle d'exécution du script
# -----------------------------------------------
while [ "$continue" == "o" -o "$continue" == "O" ]
do
	# Initialisation variable d'entrée dans la boucle
	# d'introducton du nom du set par l'utilisateur
	# --------------------------------------------------------------------------
	acceptName="o"

	# Boucle d'introduction du nom du set par l'utilisateur
	# on accepte un o minuscule ou majuscule
	# --------------------------------------------------------------------------------------
	while [ "$acceptName" == "o" -o "$acceptName" == "O" ]
	do
		echo ""
		setName=$(zenity --entry --title="Nom du set à créer:" --text="Format: [PERIODE] [dj sacha] [STYLE] [part N° from #] - Exemple: 92 ~ 93 dj sacha Techno House part 1 from 3 : " 2>/dev/null)
		echo -e "${bleuClair}Vous avez choisi "${vertClair}$setName" "
		echo -e "${neutre}"

		# choix de garder ou changer le nom choisi
		# si non, on relance la boucle
		# --------------------------------------------------------------------
		echo "Voulez-vous changer ? o/n "
		read -er acceptName
	done

	echo "-------------------------------------------------------------------------------"

	# Début des processus d'extraction et de conversion
	echo -e "${bleuClair}lancement process..."
	echo ""
	sleep 2

	# Récupération de la date 
	# à ajouter au nom final
	# ---------------------------------------
	echo "Récupération de la date..."
	TIMESTAMP=$(date +"%Y%m%d"_"%Hh%M")
	echo ""
	echo -e "${vertClair}$TIMESTAMP"
	echo ""
	nomFinal=""$TIMESTAMP" - "$setName".mp4"
	echo -e "${bleuClair}Le nom final du set sera : "${vertClair}$nomFinal""
	echo -e "${neutre}"
	read -p "Appuyez ENTER pour continuer..."

	# Process d'extraction et d'encodage
	# -----------------------------------------------------------
	echo -e "${orange}Extraction et encodage, veuillez patienter..."
	echo -e "${neutre}"

	# commande Avconv d'extraction du fichier Track1.wav sur cd
	# puis encodage en mp4 128k avec ajout de l'image de fond
	# /home/sacha/Vidéos/DJ_Sacha.jpg en 320x200
	# dans le dossier
	# /home/sacha/Vidéos/Youtube/$TIMESTAMP_$setName.mp4
	# à destination d'une chaine Youtube.
	# Le nom du fichier est composé du nom entré par l'utilisateur 
	# en y ajoutant la date et l'heure devant pour pertinence de tri
	# ($TIMESTAMP - $setName.mp4)
	# ----------------------------------------------------------------------------------------------------
	avconv -loop 1 -i "/home/sacha/Vidéos/Youtube/DJ_Sacha.jpg" -i "/run/user/1000/gvfs/cdda:host=sr0/Track 1.wav" -c:v libx264 -tune stillimage -pix_fmt yuv420p -s 320x200 -c:a aac -strict experimental -b:a 128k -shortest "/home/sacha/Vidéos/Youtube/$nomFinal" 2>/dev/null
	echo ""

	echo -e "${orange}Encodage terminé !"
	echo -e "${neutre}"
	echo ""
	read -p "Appuyez ENTER pour continuer..."

	echo "-------------------------------------------------------------------------------"
	echo ""

	# Ouverture de la page de transfert Youtube PUIS par dessus,
	# un gestionnaire de fichiers ouvert dans le dossier du fichier
	# à transférer de manière à ne plus faire qu'un glisser/déposer
	# ----------------------------------------------------------------------------------------------------
	echo -e "${bleuClair}Ouverture de la page de transfert Youtube et du gestionnaire de fichiers..."
	echo "Quand ils seront ouverts, Glissez/Déposez le fichier utile dans la fenêtre Youtube pour le transfert..."
	echo -e "${neutre}"
	read -p "Appuyez ENTER pour continuer..."
	echo ""
	google-chrome-stable https://www.youtube.com/upload &>/dev/null
	FILE=`zenity --file-selection --filename=/home/sacha/Vidéos/Youtube/"$nomFinal" --title="!!! FERMER CETTE FENETRE APRES LE GLISSER/DEPOSER !!!" 2>/dev/null `
	zenity --info --title="Titre à copier/coller dans Youtube" --text="Copier/Coller le tire suivant dans Youtube : $setName" 2>/dev/null

	# Initialisation variable de poursuite du script
	# ------------------------------------------------------------------------
	echo "Encoder un autre set ? (o/n)"
	read -er continue
	echo "------------------------------------------------------"
done

J'ai volontairement laissé l'affichage des commentaires qui défilent pendant le processus d'extraction mais si on veut les éviter, il suffit de détourner le STDOUT en remplaçant 2>/dev/null à la fin de la commande d'extraction Avconv (qui ne détourne pour l'instant que les messages d'erreurs), par &>/dev/null (qui détournera alors AUSSI les messages normaux) comme ceci :

avconv -loop 1 -i "/home/sacha/Vidéos/Youtube/DJ_Sacha.jpg" -i "/run/user/1000/gvfs/cdda:host=sr0/Track 1.wav" -c:v libx264 -tune stillimage -pix_fmt yuv420p -s 320x200 -c:a aac -strict experimental -b:a 128k -shortest "/home/sacha/Vidéos/Youtube/$nomFinal" &>/dev/null

Pour ce qui est de la partie player, j'ai opté pour SMPlayer qui est en fait un GUI pour Mplayer et qui me convient parfaitement, il tourne même sur un vieux Tablet PC Pentium 3 à 800Mhz avec 768Mb RAM, sous Lubuntu 15.04 aussi.

Voilà, j'espère ne pas avoir été trop long dans mes explications au cours de ce sujet mais ça me semblait nécessaire afin d'être le plus accessible possible par le plus grand nombre smile

Je remercie une fois de plus la Communauté pour son aide et s'il y a des questions, notamment à propos du script, n'hésitez pas smile

Dernière modification par adgenodux (Le 28/09/2015, à 22:43)

Hors ligne