2009-04-29 9 views
1

Ceci est lié à mon another questionstreaming « proxy » conversion de formats vidéo

Ici, je voudrais demander si elle est en théorie (selon les formats de fichiers vidéo et codecs, etc.) possibles pour avoir un tel scénario:

1) Le client sur iPhone a une référence à la vidéo au format FLV. Il envoie une demande HTTP à la conversion de « proxy » comme http://convproxy.com?source=url_of_original_video.flv en cliquant simplement sur ce lien dans Safari

2) La conversion proxy démarre le téléchargement de ce fichier flv et la convertir en mp4 (qui iphone comprend) à la volée, retour partie convertie http réponse, donc iPhone peut immédiatement commencer à jouer, avant que tout flv est téléchargé et converti. Je jouais avec ffmpeg en essayant de faire une telle chose, et il convertit en effet flv et produit le fichier mp4, cependant ce fichier mp4 ne peut pas être lu jusqu'à ce que la conversion soit terminée ou que ffmpeg soit arrêté. Si je viens de tuer le processus ffmpeg, le fichier mp4 ne peut pas être lu. Si je le laisse finir ou si j'appuie sur ctrl-c pour l'arrêter, la partie téléchargée et convertie peut être lue. On dirait que ffmpeg fait du travail après avoir reçu le signal d'arrêt. Est-ce une partie nécessaire du format mp4 ou cela peut-il être fait différemment? Je vois que l'iPhone peut diffuser de la vidéo, en commençant à jouer avant que le fichier entier ne soit téléchargé sur celui-ci, donc en général il semble que scénario possible pour moi. Je peux convertir des fichiers FLV en fichiers MP4, et la question est de savoir si je peux convertir flv flux en flux MP4.

Répondre

1

Selon le format wikipedia, le format de conteneur MP4 requiert une "piste d'indication" distincte pour activer le streaming. Je suppose que ffmpeg écrit cela à la fin de la conversion. Si le système d'exploitation iPhone nécessite cette piste pour diffuser, je ne vois pas un moyen de diffuser de la vidéo en direct en dehors d'un format différent et d'avoir un décodeur personnalisé sur le côté de l'iPhone similaire à celui du client Orb pour iPhone.

+0

Merci de m'avoir signalé cela, je l'ai manqué en quelque sorte. Quoi qu'il en soit, si je tue le processus ffmpeg, le fichier mp4 résultat ne peut pas être joué du tout, pas seulement par iphone. On dirait que ffmped ajoute quelque chose d'encore plus nécessaire que de suivre les pistes. –

+0

Et si je laisse ffmpeg finir son travail ou l'arrêter au lieu de terminer, mp4 produit peut être diffusé. –

+0

Ressemble à certaines informations d'en-tête de base qui sont écrites à la fin de la conversion ou lorsqu'elles sont abandonnées avec élégance. Peut-être que certains de ces éléments peuvent être pré-générés (nombre d'images, longueur, etc.) et certains falsifiés (taille de fichier, informations de débit, etc.)? Je pense que vous devriez pirater les sources ffmpeg/x264 pour le faire. Vous pouvez également essayer VideoLAN comme il a été construit pour le streaming dès le départ. – rpetrich

Questions connexes