2010-09-14 5 views
3

Pour en savoir plus, pourquoi la première commande fonctionne-t-elle, mais pas la seconde. Ils produisent des fichiers légèrement différentes tailles avec des contenus différents:Impossible de diffuser Ogg à partir de ffmpeg via stdout

ffmpeg -i test.wav -f ogg -acodec libvorbis test.a.ogg 

ffmpeg -i test.wav -f ogg -acodec libvorbis - > test.b.ogg 

test.a.ogg jouera correctement et n'a pas de problème. test.b.ogg commence au milieu de l'audio source et a des interruptions et des lacunes dans l'audio. Il ne signale pas non plus la longueur de la piste. Je veux transcoder les fichiers source à la volée dans ogg pour un programme que j'écris et j'essaye de diriger la stdout de ffmpeg vers mon programme. Mettre les résultats dans un fichier intermédiaire va tuer la performance puisque le transcodage est censé se produire à la demande.

Répondre

4

Il se peut que l'on doive rechercher OGG. De ffmpeg docs:

Pour écrire à stdout avec ffmpeg:

ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi 

... c'est le même que ...

ffmpeg -i test.wav -f avi pipe: | cat > test.avi 

Notez que certains formats (généralement MOV), nécessitent le protocole de sortie doit être cherchable, donc ils échoueront avec le protocole de sortie du tube.

Questions connexes