Bonjour, j'ai quelques problèmes pour enregistrer des vidéos avec gstreamer via le plugin decklinksrc. Ce plugin sert a pouvoir utiliser les cartes blackmagic (en l’occurrence intensity pro)
Pour commencer, j'ai pu tester que ma source vidéo est bonne via cette commande :
Code :
- gst-launch-0.10 -v decklinksrc name=decklinksrc1 mode=9 connection=1 ! ffmpegcolorspace ! xvimagesink sync=false
|
Puis ma source vidéo + audio :
Code :
- gst-launch-0.10 -v decklinksrc name=decklinksrc1 mode=9 connection=1 name=flux_ini
- flux_ini. ! queue ! ffmpegcolorspace ! videoscale ! xvimagesink sync=false
- flux_ini. ! queue ! audioconvert ! audioresample ! autoaudiosink
|
Ce qui me donne une image et du son. L'option sync=false est nécessaire car sans cette option j'obtient une image toute les 2-3 secondes. (drop frames)
Pour enregistrer la vidéo dans un fichier, j'utilise la commande suivante :
Code :
- gst-launch-0.10 -v decklinksrc name=decklinksrc1 mode=9 connection=1 name=flux_ini
- flux_ini. ! audioconvert ! lamemp3enc target=quality quality=2 ! queue
- ! matroskamux name=muxer
- flux_ini. ! queue ! ffmpegcolorspace ! x264enc pass=4 quantizer=30 subme=4 threads=0 ! queue ! muxer.
- muxer. ! queue ! filesink location=/home/user/test.mkv
|
C'est la que ça devient problématique :
1. J'ai obtenu cette commande en puisant dans différents tutos + en adaptant à mes besoins ce qui est certainement à l'origine des deux problèmes ci dessous. J'ai du enlever des ''! queue'' car j'obtenais des erreurs.
2. Le fichier créé n'est pas valide ; le logiciel perd des image (drop frames) ou plus ? Ce qui fait que la lecture du fichier plante aléatoirement.
3. Je n'arrive pas a arrêter proprement la pipeline même avec cette commande :
Code :
- gst-launch-0.10 -v -e decklinksrc name=decklinksrc1 mode=9 connection=1 name=flux_ini
- flux_ini. ! audioconvert ! lamemp3enc target=quality quality=2 ! queue
- ! matroskamux name=muxer
- flux_ini. ! queue ! ffmpegcolorspace ! x264enc pass=4 quantizer=30 subme=4 threads=0 ! queue ! muxer.
- muxer. ! queue ! filesink location=/home/user/test.mkv
|
Voici ce que j'obtient quand je fais ctrl-c :
Code :
- Caught interrupt -- handling interrupt.
- Interruption : arrêt du pipeline...
- EOS à la fermeture est activé -- EOS forcé sur le pipeline
- Attente d'EOS...
|
Et l'enregistrement continue comme si je n'avais rien fais
Le -e est sensé permettre un arrêt propre de la pipeline pour avoir un fichier vidéo valide. (ex: pouvoir naviguer dans le fichier)
Merci d'avance pour votre aide
Message édité par Adrix12 le 05-01-2013 à 17:15:15
---------------
Si vous avez de bonnes connaissances en gstreamer SVP cliquez :-)