FFplay проигрывает MPEG-DA SH только в том же каталоге - PullRequest
0 голосов
/ 23 марта 2020

Я создал серию видеофрагментов, используя dashen c. c из libav ffmpeg на моей машине windows. Файл mpd является шаблонным, поэтому он довольно прост и проходит проверку. Видео воспроизводится, но только если я помещаю ffplay в ту же папку, что и все файлы, и использую:

ffplay -i manifest.mpd

Если я пытаюсь воспроизвести из другого каталога или даже из того же каталога, используя:

ffplay -i c:\tmp\manifest.mpd

или

ffplay -i c:/tmp/manifest.mpd

Попытка не удалась, выдав эту ошибку:

[dash @ 0000016ce0d69900] Failed to open an initialization section in playlist 0
[dash @ 0000016ce0d69900] Error when loading first fragment, playlist 0
C:/tmp/manifest.mpd: Invalid argument

Файл mpd:

<?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="dynamic"
    minimumUpdatePeriod="PT500S"
    suggestedPresentationDelay="PT4S"
    availabilityStartTime="2020-03-23T14:54:16Z"
    publishTime="2020-03-23T14:54:25Z"
    timeShiftBufferDepth="PT4811H53M52.3S"
    minBufferTime="PT9.6S">
    <ProgramInformation>
    </ProgramInformation>
    <Period id="0" start="PT0.0S">
        <AdaptationSet id="0" contentType="video" segmentAlignment="true" bitstreamSwitching="true">
            <Representation id="0" mimeType="video/mp4" codecs="avc1.42001e" bandwidth="5953124" width="720" height="480">
                <SegmentTemplate timescale="1000000" duration="5000000" availabilityTimeOffset="4.967" initialization="init-stream$RepresentationID$.m4s" media="media-stream$RepresentationID$-$Number%06d$.m4s" startNumber="1">
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>

Добавление в BaseUrl стихия не помогла; я думаю, я неправильно форматирую Любые идеи, что я мог бы сделать, чтобы это исправить?

1 Ответ

0 голосов
/ 26 марта 2020

Казалось бы, проблема в том, что ffplay ожидает URL для своего входного аргумента. Внутренне, комбинация Windows абсолютного пути к файлу .mpd и относительного пути для сегментов не рассматривалась, и хотя вы можете вручную настроить файл .mpd вне ffmpeg, чтобы сделать его приемлемым для dashde c. c, вы не можете заставить dashen c. c создать его так, чтобы dashde c. c работал с ним (за исключением, может быть, случая создания одного файла .mp4, который позволит вам создать один тег BaseUrl). Для правильного просмотра .mpd его необходимо отправить по URL-адресу, например, веб-сервером.

...