L'encodage de FFMPEG pour MPEG-DASH – ou WebM avec des images clés que les Clusters pour MediaSource API
Je suis actuellement à l'envoi d'un flux vidéo pour google Chrome, pour jouer via le MediaSource API.
Comme je le comprends, MediaSource prend uniquement en charge les fichiers MP4 encodé en MPEG-DASH, ou WebM fichiers qui ont des clusters début avec des images clés (sinon, il génère l'erreur: secteur Médias ne commence pas avec l'image clé).
Est-il possible d'encoder en MPEG-DASH ou d'images clés WebM formats avec FFMPEG en temps réel?
Edit:
Je l'ai juste essayé avec ffmpeg ... -f webm -vcodec vp8 -g 1
de sorte que chaque image est une image-clé. Pas la solution idéale. Il fonctionne avec MediaStream maintenant si. De toute façon à synchroniser les segments avec les images clés dans le WebM donc pas chaque image doit être une image clé?
Questions de référence sur WebM /MP4 et MediaSource:
OriginalL'auteur Chris Nolet | 2014-06-11
Vous devez vous connecter pour publier un commentaire.
Pour s'assurer que chaque cluster dans votre WebM commence avec une image-clé, essayez quelque chose comme ceci:
Fondamentalement, tel que mis en œuvre, chaque image-clé doit être au début d'un cluster, mais l'inverse n'est pas vrai. C'est, sur une image clé, il y aura un nouveau cluster, mais sur le nouveau cluster, il ne sera pas nécessairement une image-clé. Pour contourner ce problème, il nous suffit de définir la taille de cluster à quelque chose de grand qui nous touchera jamais.
Dans cet exemple, nous allons avoir une image clé toutes les 2 secondes, et le cluster limite de temps est de 2,1 secondes, de sorte que nous ne serons jamais à l'atteindre. Le débit est 4Mbit, et la taille de cluster limite est de 10M. Vous ne savez pas si c'est de bits ou d'octets de là, mais elle n'a pas d'importance tant que nous ne serons jamais frappé comme je l'ai mis beaucoup plus qu'il ne devrait l'être.
Je suis d'accord! Aussi, Brad sait beaucoup trop sur ce genre de choses 🙂
OriginalL'auteur Brad
Au moment de FFMPEG ne prend pas en charge DASH encodage. Vous pouvez segment avec FFMPEG (https://www.ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment), mais je vous recommande de combiner FFMPEG et MP4Box. Utiliser FFMPEG pour transcoder le vidéo en direct, puis MP4Box de segmenter et de créer l' .mpd index.
MP4Box est une partie de la GPAC (http://gpac.wp.mines-telecom.fr/).
Voici un exemple d'utilisation de h264:
Si vous avez besoin d'VP8 (WebM), utilisation:
-vcodec libvpx
et-f webm
ou-f ts
.Oui, vous pouvez utiliser MP4Box pour le segment de la Vidéo en Direct. L'idée est ici: slideshare.net/cconcolato/... Pour le sgementer est le même job segment VP8 ou H264.
Est-ce toujours à jour? Il semble qu'il y est au moins de manière limitée, DASH de soutien maintenant. ffmpeg.org/ffmpeg-formats.html#webm_005fdash_005fmanifest
OriginalL'auteur Cibrán Docampo
Un autre utilisateur a eu un peu de chance avec:
Veuillez voir galbarm de questions à:
Remarque: Si vous n'avez pas des images clés sur la vidéo d'entrée, vous devrez peut-être définir:
... au lieu de
+frag_keyframe
.OriginalL'auteur Chris Nolet
J'ai couru dans la même situation lorsque essayant de jouer a enregistré .webm fichier par MediaRecorder API arrière à l'aide de Media Source Extensions (MSE). Chrome (51) les enregistrements sont mal formés, Firefox (46) semble OK.
Pour le faire fonctionner, vous devez fixer des repères dans .webm fichier:
cmake .
make
./sample_muxer -i original.webm -o fixed.webm
Espérons qu'il a aidé quelqu'un. C'était assez difficile pour google de toute information sans le TIRET mot-clé (je ne suis pas en utilisant le tableau de bord, que la même technologie sous - jacente, MSE) 🙂
OriginalL'auteur lukyer