web-dev-qa-db-fra.com

Streaming mp4 avec ffmpeg

Je dois créer un flux comportant deux flux - Webm et mp4 - pour qu'il soit compatible avec tous les lecteurs vidéo HTML5. Le flux WebM fonctionne parfaitement. Cependant, lorsqu'il tente d'accéder au flux mp4, le serveur génère l'erreur suivante:

Sat Mar  9 23:21:54 2013 muxer does not support non seekable output

Voici la partie du fichier ffserver.conf qui traite du flux mp4:

<Stream channel1.mp4>       # Output stream URL definition
   Feed feed1.ffm              # Feed from which to receive video
   Format mp4

   # Audio settings
   AudioCodec libmp3lame
   AudioBitRate 64             # Audio bitrate

   # Video settings
   VideoCodec libx264
   VideoSize 560x320           # Video resolution
   VideoFrameRate 25           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder
                                       # (same as ffmpeg command-line parameters)
   AVOptionVideo cpu-used 0
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42
   AVOptionVideo quality good
   AVOptionAudio flags +global_header
   PreRoll 15
   StartSendOnKey
   VideoBitRate 400            # Video bitrate
</Stream>

D'après ce que je peux trouver, certaines personnes disent que mp4 ne peut tout simplement pas être streamé. Je n'ai aucune pièce jointe à mp4, à part le fait que j'avais l'impression qu'il fallait mp4 pour diffuser de la vidéo sur l'iPhone avec un lecteur vidéo HTML5. Si ce n'est pas le cas, faites-le moi savoir et je passerai volontiers à quelque chose qui fonctionne mieux avec le streaming ffmpeg.

16
Fibericon

L'article HTML 5 et vidéo compatible iPad sur votre propre site Web , mis à jour le 12 novembre 2014, contient les informations suivantes:

image

L'article recommande d'utiliser MP4 comme une bonne solution avec une version assez récente de ffmpeg, utilisant l'encodage H.264 avec AAC.

Je suggère de lire l'article en prêtant attention aux détails: il contient un exemple de fichier HTML qui fonctionnera sur tous les principaux navigateurs, ainsi qu'un exemple de commande FFmpeg permettant de convertir des vidéos en fichiers .mp4 afin qu'elles soient diffusées correctement.

6
harrymc

Je suppose qu'il sera utile de penser à HTTP Live Streaming.

https://developer.Apple.com/streaming/

Si je comprends bien, cela fonctionne très bien sur les appareils iOs.

Voici un exemple:

https://stackoverflow.com/questions/28723993/ffmpeg-hls-stream-for-Android-and-ios

0
Ilia w495 Nikitin