2017-04-12 3 views
0

J'essaie d'apprendre ffmpeg, MP4Box et MPEG-DASH, mais je rencontre un problème avec le .mp4 que j'utilise. J'utilise ffmpeg pour extraire la piste mp4 avec cette commande:MPEG-DASH - Représentations multiplexées Problème

ffmpeg -i test.mp4 -c:v copy -g 72 -an video.mp4 -c:a copy audio.mp4 

Une fois que les deux fichiers sont créés, j'utilise MP4Box pour segmenter les fichiers pour le lecteur de tableau de bord en utilisant cette commande:

MP4Box -dash 4000 -frag 1000 -rap -segment-name segment_ output.mp4 

qui crée tous les fichiers dont je pense avoir besoin. Ensuite, je signale le joueur à la output_dash.mpd et rien ne se passe, sauf une tonne de messages dans la console:

[8] EME detected on this user agent! (ProtectionModel_21Jan2015) 
[11] Playback Initialized 
[21] [dash.js 2.3.0] MediaPlayer has been initialized 
[64] Parsing complete: (xml2json: 3.42ms, objectiron: 2.61ms, total: 0.00603s) 
[65] Manifest has been refreshed at Wed Apr 12 2017 12:16:52 GMT-0600 (MDT)[1492021012.196] 
[72] MediaSource attached to element. Waiting on open... 
[77] MediaSource is open! 
[77] Duration successfully set to: 148.34 
[78] Added 0 inline events 
[78] No video data. 
[79] No audio data. 
[79] No text data. 
[79] No fragmentedText data. 
[79] No embeddedText data. 
[80] Multiplexed representations are intentionally not supported, as they are not compliant with the DASH-AVC/264 guidelines 
[81] No streams to play. 

Voici le MP4Box -info sur la vidéo que je utilise:

* Movie Info * 
    Timescale 1000 - Duration 00:02:28.336 
    Fragmented File no - 2 track(s) 
    File suitable for progressive download (moov before mdat) 
    File Brand mp42 - version 512 
    Created: GMT Wed Feb 6 06:28:16 2036 

File has root IOD (9 bytes) 
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff 
Visual PL: Not part of MPEG-4 Visual profiles (0xfe) 
Audio PL: Not part of MPEG-4 audio profiles (0xfe) 
No streams included in root OD 

iTunes Info: 
    Name: Rogue One - A Star Wars Story 
    Artist: Lucasfilm 
    Genre: Trailer 
    Created: 2016 
    Encoder Software: HandBrake 0.10.2 2015060900 
    Cover Art: JPEG File 

Track # 1 Info - TrackID 1 - TimeScale 90000 - Duration 00:02:28.335 
Media Info: Language "Undetermined" - Type "vide:avc1" - 3552 samples 
Visual Track layout: x=0 y=0 width=1920 height=816 
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21 
AVC/H264 Video - Visual Size 1920 x 816 
    AVC Info: 1 SPS - 1 PPS - Profile High @ Level 4.1 
    NAL Unit length bits: 32 
    Pixel Aspect Ratio 1:1 - Indicated track size 1920 x 816 
Self-synchronized 

Track # 2 Info - TrackID 2 - TimeScale 44100 - Duration 00:02:28.305 
Media Info: Language "English" - Type "soun:mp4a" - 6387 samples 
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40 
MPEG-4 Audio MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 44100 
Synchronized on stream 1 
Alternate Group ID 1 

Je sais que je dois séparer la vidéo et l'audio et je pense que c'est là que se situe mon problème. La commande que j'utilise ne fait probablement pas la bonne chose.

Existe-t-il une meilleure commande pour démultiplexer mon mp4? La commande MP4Box que j'utilise le mieux pour segmenter les fichiers? Si j'utilise des fichiers différents, devront-ils toujours être démultiplexés?

Une chose à mentionner, si j'utilise les commandes suivantes tout fonctionne bien, mais il n'y a pas d'audio en raison de la qui signifie qu'il est seulement la vidéo:

ffmpeg -i test.mp4 -c:v copy -g 72 -an output.mp4 

MP4Box -dash 4000 -frag 1000 -rap -segment-name segment_ output.mp4 

MISE À JOUR

J'ai remarqué que la vidéo n'avait pas de flux audio, mais l'audio avait le flux vidéo, c'est pourquoi j'ai eu l'erreur mux. Je pensais que peut-être un problème alors j'ai couru cette commande pour garder les flux indésirables sur les sorties:

ffmpeg -i test.mp4 -c:v copy -g 72 -an video.mp4 -c:a copy -vn audio.mp4 

je lance:

MP4Box -dash 4000 -frag 1000 -rap -segment-name segment_ video.mp4 audio.mp4 

maintenant je ne reçois les représentations multiplexés sont intentionnellement pas pris en charge ... message, mais maintenant je reçois:

[122] Video Element Error: MEDIA_ERR_SRC_NOT_SUPPORTED 
[123] [object MediaError] 
[125] Schedule controller stopping for audio 
[126] Caught pending play exception - continuing (NotSupportedError: Failed to load because no supported source was found.) 

J'ai essayé de lire la vidéo et de l'audio indépendamment par Chrome et ils travaillent tous les deux, mais pas par le joueur de tableau de bord. Ugh, c'est douloureux à apprendre, mais j'ai l'impression de faire des progrès.

Répondre

0

J'ai fini par utiliser Bento4. Je ne sais pas pourquoi je n'ai pas réussi à faire fonctionner MP4Box, mais Bento4 a fonctionné très facilement et m'a permis d'aller et venir dans quelques heures.

0

Vous n'utilisez pas le bon profil. Considérant les journaux, je suppose que vous utilisez le lecteur de tableau de bord. Dans ce cas, vous devez utiliser cette commande:

MP4Box -dash 4000 -frag 1000 -profile dashavc264: -segment de nom de onDemand de output.mp4