AMcoder - javascript, python, java, html, php, sql

MPEG-DASH - Multiplexed Representations Issue

Ես փորձում եմ սովորել ffmpeg, MP4Box և MPEG-DASH, բայց ես խնդիր եմ ունենում .mp4-ի հետ, որն օգտագործում եմ: Ես օգտագործում եմ ffmpeg mp4-ը դեմյուքսելու համար այս հրամանով.

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

Երկու ֆայլերը ստեղծելուց հետո ես օգտագործում եմ MP4Box ֆայլերը dash player-ի համար սեգմենտավորելու համար՝ օգտագործելով այս հրամանը.

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

Որը ստեղծում է բոլոր այն ֆայլերը, որոնք ես կարծում եմ, որ ինձ անհրաժեշտ են: Այնուհետև ես մատնացույց եմ անում նվագարկիչը դեպի output_dash.mpd և ոչինչ չի պատահում, բացի մի տոննա հաղորդագրություններից, որոնք գտնվում են վահանակում.

[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.

Ահա MP4Box-ինֆո այն տեսանյութի վրա, որը ես օգտագործում եմ.

* 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

Ես գիտեմ, որ պետք է առանձնացնեմ վիդեոն և աուդիո, և կարծում եմ, որ այստեղ է իմ խնդիրը: Հրամանը, որը ես օգտագործում եմ, հավանաբար ճիշտ չի գործում:

Իմ mp4-ը դեմուքս անելու ավելի լավ հրաման կա՞: Արդյո՞ք MP4Box հրամանը, որը ես օգտագործում եմ, ամենալավն է ֆայլերը սեգմենտավորելու համար: Եթե ​​ես տարբեր ֆայլեր օգտագործեմ, արդյոք դրանք միշտ պետք է դեմուքս անել:

Պետք է նշել մի բան, եթե ես օգտագործեմ հետևյալ հրամանները, ամեն ինչ լավ է աշխատում, բայց ձայն չկա -an-ի պատճառով, ինչը նշանակում է, որ դա միայն տեսանյութ է.

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

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

ԹԱՐՄԱՑՆԵԼ

Ես նկատեցի, որ տեսանյութը չունի աուդիո հոսք, բայց աուդիոն ուներ վիդեո հոսք, ինչի պատճառով ես ստացա mux սխալ: Ես մտածեցի, որ դա կարող է խնդիր լինել, ուստի ես գործարկեցի այս հրամանը՝ անցանկալի հոսքերը ելքերից դուրս պահելու համար.

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

ապա ես վազում եմ.

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

այժմ ես այլևս չեմ ստանում Multiplexed ներկայացուցչությունները միտումնավոր չեն աջակցվում... հաղորդագրություն, բայց հիմա ես ստանում եմ.

[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.)

Ես փորձեցի վիդեոն և աուդիո անկախ նվագարկել Chrome-ի միջոցով, և նրանք երկուսն էլ աշխատում են, ոչ թե dash player-ի միջոցով: Ուհ, սա ցավալի է սովորելը, բայց ես զգում եմ, որ առաջադիմում եմ:


Պատասխանները:


1

Ես ի վերջո գնացի Bento4-ով: Վստահ չեմ, թե ինչու չկարողացա MP4Box-ը աշխատեցնել, բայց Bento4-ը շատ հեշտ աշխատեց և մի քանի ժամվա ընթացքում ինձ կանգնեցրեց և ոտքի կանգնեցրեց:

18.04.2017

2

Դուք չեք օգտագործում լավ պրոֆիլը: Հաշվի առնելով տեղեկամատյանները՝ ենթադրում եմ, որ դուք օգտագործում եք dash-if նվագարկիչը: Այդ դեպքում դուք պետք է օգտագործեք այս հրամանը.

MP4Box -dash 4000 -frag 1000 -profile dashavc264:onDemand -rap -segment-name segment_ output.mp4

26.04.2017
  • Այս հրամանն օգտագործելիս MP4Box-ը պարզապես տպում է սխալ [DASH] Սեգմենտի անունը չի թույլատրվում DASH-AVC/264 onDemand պրոֆիլում և դուրս է գալիս: 19.03.2018
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..