ffmpeg generiert keine Bandbreite in meiner mpd-Datei (Bindestrich)

385
Maverickk

Wir entwickeln einen eingebauten Player, der über das DASH-Protokoll gestreamt wird. Zunächst müssen alle vom Benutzer gesendeten Medien nach MP4 (h264) konvertiert werden. Wenn ffmpeg das Manifest für die DASH (MPD-Datei) erstellt, enthält es nicht den Bandbreitenwert für das Videosegment. Das Audio kommt mit der Bandbreite.

Das Fehlen der Bandbreite für das Videosegment führt dazu, dass der Player das Video nicht abspielt.

Wie kann ich sicherstellen, dass ffmpeg die Bandbreite enthält?

ffmpeg Befehl:

segment_cmd = [ 'ffmpeg -i ' ' -c copy', ' -c:v libx264', ' -x264-params "nal-hrd=cbr"', ' -vf scale=-1:', ' -b:v 1M', ' -minrate 1M', ' -maxrate 1M', ' -bufsize 2M', ' -use_template 1', ' -init_seg_name init-stream\$RepresentationID\$-$Bandwidth\$.m4s', ' -media_seg_name chunk-stream\$RepresentationID\$-\$Bandwidth\$-\$Number\$.m4s', ' -adaptation_sets "id=0,streams=v id=1,streams=a"', ' -f dash .mpd' ] 

die MPD-Datei ohne BANDWIDTH

<?xml version="1.0" encoding="utf-8"?> <MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT1M30.0S" minBufferTime="PT4.9S"> <ProgramInformation> </ProgramInformation> <Period start="PT0.0S"> <AdaptationSet contentType="video" segmentAlignment="true" bitstreamSwitching="true" frameRate="24000/1001"> <Representation id="0" mimeType="video/mp4" codecs="avc1.64001f" width="1280" height="720" frameRate="24000/1001"> <SegmentTemplate timescale="24000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1"> <SegmentTimeline> <S t="0" d="143143" /> <S d="127127" /> <S d="121121" /> <S d="116116" /> <S d="126126" /> <S d="89089" /> <S d="150150" /> <S d="106106" /> <S d="152152" /> <S d="82082" /> <S d="133133" /> <S d="107107" /> <S d="154154" /> <S d="81081" /> <S d="116116" /> <S d="140140" /> <S d="118118" /> <S d="99099" /> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> <AdaptationSet contentType="audio" segmentAlignment="true" bitstreamSwitching="true"> <Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="128000" audioSamplingRate="44100"> <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" /> <SegmentTemplate timescale="44100" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1"> <SegmentTimeline> <S t="0" d="260096" /> <S d="233472" /> <S d="222208" /> <S d="214016" /> <S d="231424" /> <S d="163840" /> <S d="275456" /> <S d="195584" /> <S d="279552" /> <S d="150528" /> <S d="244736" /> <S d="196608" /> <S d="283648" /> <S d="148480" /> <S d="214016" /> <S d="257024" /> <S d="217088" /> <S d="185344" /> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period> </MPD> 
0
Könnten Sie bitte die vollständige Befehlszeilenausgabe anzeigen? slhck vor 5 Jahren 0
hier gehts: [link] (https://pastebin.com/H9GbYBZB) Maverickk vor 5 Jahren 0
Scheint, als hätte der Stream keine Ausgabebandbreite eingestellt - könnten Sie es mit einer aktuellen Version von ffmpeg versuchen? Ich konnte das Problem hier nicht reproduzieren. slhck vor 5 Jahren 0
Ich habe es auch mit der neuesten Version und einer vorherigen Version versucht. Maverickk vor 5 Jahren 0
Ist die Eingabedatei zum Testen verfügbar? Möglicherweise wäre ein Fehlerbericht über den FFmpeg-Problem-Tracker sinnvoll: https://trac.ffmpeg.org/ slhck vor 5 Jahren 0

0 Antworten auf die Frage