2010-07-05 6 views
-2

Quelle est la meilleure façon de créer une vidéo en tant que sortie d'un programme Perl?Sortie vidéo Perl

+0

Désolé, mais je ne pense pas que ce soit une question à laquelle on puisse répondre. Votez pour fermer. –

+0

Utilisez une caméra vidéo. Et cela fonctionne aussi pour les choses qui ne sont pas des programmes informatiques. – dolmen

+0

Je manipule des formes à travers le code, une caméra vidéo ne m'aide pas du tout. –

Répondre

1

Vidéo quoi? Vous pouvez toujours utiliser une bibliothèque graphique simple comme GD et beaucoup de ffmpeg pour faire ce que vous voulez.

+1

Oui, en utilisant gd pour imprimer beaucoup d'images sur le disque dur, puis en les plaçant dans ffmpeg le ferait. Mais c'est très lent car il utilise beaucoup le disque dur .. inutilement. –

+0

Je ne sais pas ce que vous entendez par "utilise beaucoup le disque dur". Si vous créez une vidéo, vous devrez manipuler beaucoup de données. Générer un clip de vingt secondes, qui est d'environ 600 images, ne devrait pas prendre très longtemps. Le fonctionnement de la plupart des codecs vidéo signifie que vous ne pouvez pas simplement ajouter des images à une vidéo à la fois. Vous devez créer un tas d'images brutes, puis les coder dans une petite opération par lots. – tadman

+0

Je veux dire que j'ai besoin d'écrire beaucoup de choses dans le disque dur, puis le relire depuis le disque dur.Cela prend énormément plus de temps que de simplement faire des choses dans le bélier et de l'envoyer directement à l'écran. –

0

NE FONCTIONNE PAS !!!

MISE À JOUR: S'il vous plaît ne pas tenir compte de la ci-dessous réponse - à la lecture par le code source de FFmpeg, l'entrée URL ne ruisselait - il est tout téléchargé simplement dans un fichier, puis le traitement des fichiers régulier est effectué :(

Je suis laissant la réponse en cas où quelqu'un recherche trouver plus tard une information utile pour le traitement Perl vidéo, même si elle ne permet pas dans ce cas précis.

rÉPONSE ORIGINAL FFmpeg l'existance de ffmpeg n'a pas (basé sur POD) semblent autoriser une source in-RAM, mais autorise ceux Donc à tout le moins, vous pouvez pirater en ayant besoin de faire des E/S sur disque en diffusant vos données brutes via Apache ou un serveur web plus petit, et en utilisant l'entrée URL de FFmpeg pour récupérer ces données de http://localhost:yourport. Les données brutes viendraient automatiquement au serveur Web à partir d'un programme Perl fonctionnant sous mod_perl/FCGI

1

Si vous pouvez comprendre comment produire un flux de données que le module d'entrée yuvmpeg4pipe de ffmpeg peut gérer, alors vous pourriez envoyer vos données dans un fifo pour éviter de frapper le disque avec des données intermédiaires. Étant donné que le yuvmpeg4pipe semble être un flux de données sans en-tête, il devrait être assez facile à répliquer.

Ce lien peut vous donner quelques idées: http://kylecordes.com/2007/pipe-ffmpeg

Vous pouvez également essayer de créer soit un fichier mappé en mémoire ou disque virtuel de toutes sortes pour écrire dans. Mais même un système avec 16 Go de RAM va se remplir très rapidement lorsque vous travaillez avec de la vidéo non compressée.

En général, il est généralement préférable de simplement écrire les fichiers non compressés (probablement une séquence d'images dans votre cas), puis de les compresser après leur exportation. La raison en est, si vous faites quelque chose d'intéressant dans la vidéo, il faudra probablement plusieurs fois plus de temps pour rendre les images non compressées que pour compresser la vidéo. En sauvegardant la copie non compressée, vous pouvez compresser différentes cibles ou ajuster vos paramètres de compression ...

En outre, travailler avec des séquences d'images ouvre la porte au traitement parallèle sur plusieurs cœurs ou même sur plusieurs ordinateurs. C'est ainsi que de nombreux systèmes de rendu vidéo commerciaux atteignent des vitesses plus élevées.

Questions connexes