Recherche avancée

Médias (0)

Mot : - Tags -/optimisation

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (111)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

Sur d’autres sites (18313)

  • How to correctly calculate which segments are ready to be downloaded using MPEG-DASH

    24 avril 2019, par igal k

    What i’m trying to do ?

    Write a simple MPEG-DASH client using the SegmentTemplate pattern to calculate which segments are ready to be downloaded for a live source.

    A picture taken using chrome’s debugging tools at a moment X showing an mpd request(8af651fd747.....mpd) and the actual segments fetched respectfully to that request.

    enter image description here

    Given the following MPD

    <mpd availabilitystarttime="2019-04-24T06:43:32Z" maxsegmentduration="PT4.096S" minbuffertime="PT4.096S" minimumupdateperiod="PT15.835S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishtime="2019-04-24T11:14:01Z" suggestedpresentationdelay="PT11.878S" timeshiftbufferdepth="PT65.536S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011">
     <location>https://content-aaps1.uplynk.com/channel/8af651fd7473474f86a05ffb0a1c8972.mpd?rmt=wv&amp;amp;cid=8af651fd7473474f86a05ffb0a1c8972&amp;amp;oid=600e5c27541344a1bf3818617ad712ce&amp;amp;prettydash=1&amp;amp;exp=1556091088&amp;amp;rn=4138683939&amp;amp;tc=1&amp;amp;ct=c&amp;amp;sig=5fb7f0c18f3f1d2ad4fdee53c02c1e1ed904bc5e8474f4ebf886d209ff7f21c9&amp;amp;pbs=05b6594bcf4b4728ac1094976a80194d</location>
     <period start="PT2826.240S">
       <adaptationset maxframerate="30" maxheight="720" maxwidth="1280" mimetype="video/mp4" segmentalignment="true" startwithsap="1">
         <representation bandwidth="2604473" codecs="avc1.64001e" framerate="30" height="360" scantype="progressive" width="640">
           <baseurl>https://x-default-stgec.uplynk.com/aapm/slices/8c1/600e5c27541344a1bf3818617ad712ce/8c1027496a964b049f1bd5895f8f0412/</baseurl>
           <segmenttemplate duration="368640" initialization="https://x-default-stgec.uplynk.com/aapm/slices/8c1/600e5c27541344a1bf3818617ad712ce/8c1027496a964b049f1bd5895f8f0412/$RepresentationID$_init.mp4?pbs=05b6594bcf4b4728ac1094976a80194d&amp;amp;_jt=l&amp;amp;chid=8af651fd7473474f86a05ffb0a1c8972" media="$RepresentationID$$Number%08d$.m4f?pbs=05b6594bcf4b4728ac1094976a80194d&amp;amp;_jt=l&amp;amp;chid=8af651fd7473474f86a05ffb0a1c8972" presentationtimeoffset="254361599" startnumber="690" timescale="90000"></segmenttemplate>
         </representation>
       </adaptationset>
     </period>
     <utctiming schemeiduri="urn:mpeg:dash:utc:http-iso:2014" value="https://content-aaps1.uplynk.com/misc/utcservertime"></utctiming>
    </mpd>

    I see that the next segment request should be #3955

    What i have tried so far

       period.end = 1556104456;
       period.start = 2826;
       availability_start_time = 1556088212;
       max_segment_duration = 4;
       time_shift_buffer_depth = 65

    So, first of all, i read DASH-IF-IOP 4.3 section 4.3.4.2 page #82 and implemented the following code :

      int k1 = 1;
    int period_duration = period.end - (period.start + data_.availability_start_time);
    int k2 = ceil((float)period_duration / (float)data_.max_segment_duration);
    double duration = ((float)representation.duration / (float)representation.timeScale);
    size_t live_edge = std::min(
       (int)floor((float)((data_.publish_time - data_.availability_start_time - period.start) / duration)), k2);

    size_t oldest = std::max(k1, (int)floor((float)((data_.publish_time - data_.availability_start_time - period.start -
                                                       data_.time_shift_buffer_depth) /
                                                   duration)));

    after calculating everything : k1=1, k2=3355, live_edge=3272 and oldest=3256

    Also tried using ffmpeg’s dashdec.c

    for min_segment :

    if (c->is_live &amp;&amp; pls->fragment_duration)
       {
           num = pls->first_seq_no + (((get_current_time_in_sec() - c->availability_start_time) - c->time_shift_buffer_depth) * pls->fragment_timescale) / pls->fragment_duration;
       }

    for max_segment :

    num = pls->first_seq_no + (((get_current_time_in_sec() - c->availability_start_time)) * pls->fragment_timescale) / pls->fragment_duration;

    after a small modification :

    size_t pmax = (((data_.publish_time - data_.availability_start_time))) / duration;
    size_t pmin = ((data_.publish_time - data_.availability_start_time) - data_.time_shift_buffer_depth) / duration;

    pmin=3946 pmax=3961

    in the ffmpeg example, i had to manually remove the first_seq_no variable because it looked like i doubled added the SegmentTemplate@StartNumber.

    even after succeeding in this task, how do i exactly build the request list of Segment(NOW) ----> Segment(LIVE_EDGE)

  • What does "dash" - mean as ffmpeg output filename

    26 août 2020, par DDS

    I'm trying to use ffmpeg with gnuplot to draw some audio spectra, I'm following this ffmpeg doc link.

    &#xA;

    Now I'm asking what "dash" - means on this line right after -f data, it should be a filename : the last element of ffmpeg command should the output file but I have no files named - in the directory after running the command.

    &#xA;

    ffmpeg -y -i in.wav -ac 1 -filter:a aresample=8000 -map 0:a -c:a pcm_s16le -f data - | gnuplot -p -e "plot &#x27;code>

    &#xA;

    I looked on ffmpeg docs but I didn't find anything.

    &#xA;

  • Algorithm when recording SegmentTimeline of MPEG-DASH MPD in shaka packager

    25 mars 2021, par jgkim0518

    I packaged a media stream by mpeg-dash transcoded video at twice the speed and audio at normal speed.&#xA;Here is the command :

    &#xA;

    ffmpeg -re -stream_loop -1 -i timing_logic.mp4 -c:v hevc_nvenc -filter:v "setpts=2*PTS" -c:a libfdk_aac -map 0:v -map 0:a -f mpegts udp://xxx.xxx.xxx.xxx:xxxx?pkt_size=1316&#xA;

    &#xA;

    The source information used here is as follows :

    &#xA;

    Input #0, mpegts, from &#x27;/home/test/timing_logic/timing_logic.mp4&#x27;:&#xA;Duration: 00:00:30.22, start: 1.400000, bitrate: 16171 kb/s&#xA;Program 1&#xA;Metadata:&#xA;service_name : Service01&#xA;service_provider: FFmpeg&#xA;Stream #0:0[0x100]: Video: hevc (Main 10) (HEVC / 0x43564548), yuv420p10le(tv, bt709), 3840x2160 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 50 tbc&#xA;Stream #0:1[0x101](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 128 kb/s Stream mapping:&#xA;Stream #0:0 -> #0:0 (hevc (native) -> hevc (hevc_nvenc))&#xA;Stream #0:1 -> #0:1 (mp2 (native) -> aac (libfdk_aac))&#xA;Press [q] to stop, [?] for help&#xA;frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A&#xA;frame= 0 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A&#xA;Output #0, mpegts, to &#x27;udp://xxx.xxx.xxx.xxx:xxxx?pkt_size=1316&#x27;:&#xA;Metadata:&#xA;encoder : Lavf58.45.100&#xA;Stream #0:0: Video: hevc (hevc_nvenc) (Main 10), p010le, 3840x2160 [SAR 1:1 DAR 16:9], q=-1--1, 2000 kb/s, 50 fps, 90k tbn, 50 tbc&#xA;Metadata:&#xA;encoder : Lavc58.91.100 hevc_nvenc&#xA;Side data:&#xA;cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000 vbv_delay: N/A&#xA;Stream #0:1(eng): Audio: aac (libfdk_aac), 48000 Hz, stereo, s16, 139 kb/s&#xA;Metadata:&#xA;encoder : Lavc58.91.100 libfdk_aac&#xA;

    &#xA;

    My shaka packager command is :

    &#xA;

    packager \ &#x27;in=udp://xxx.xxx.xxx.xxx:xxxx,stream=video,init_segment=/home/test/timing_logic/package/video/0/video.mp4,segment_template=/home/test/timing_logic/package/video/0/$Time$.m4s&#x27; \&#xA;&#x27;in=udp://xxx.xxx.xxx.xxx:xxxx,stream=audio,init_segment=/home/test/timing_logic/package/audio/0/audio.mp4,segment_template=/home/test/timing_logic/package/audio/0/$Time$.m4a&#x27; \&#xA;--segment_duration 5 --fragment_duration 5 --minimum_update_period 5 --min_buffer_time 5 \&#xA;--preserved_segments_outside_live_window 24 --time_shift_buffer_depth 40 \&#xA;--allow_codec_switching --allow_approximate_segment_timeline --log_file_generation_deletion \&#xA;--mpd_output $OUTPUT/$output_mpd.mpd &amp;&#xA;

    &#xA;

    Looking at the mpd generated as a result of packaging, the duration of the audio is twice that of the video, and the number of segments is half.&#xA;The following is the content of mpd :

    &#xA;

    &lt;?xml version="1.0" encoding="UTF-8"?>&#xA;&#xA;<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" minbuffertime="PT5S" type="dynamic" publishtime="2021-03-23T10:01:57Z" availabilitystarttime="2021-03-23T09:59:55Z" minimumupdateperiod="PT5S" timeshiftbufferdepth="PT40S">&#xA;<period start="PT0S">&#xA;<adaptationset contenttype="audio" segmentalignment="true">&#xA;<representation bandwidth="140020" codecs="mp4a.40.2" mimetype="audio/mp4" audiosamplingrate="48000">&#xA;<audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>&#xA;<segmenttemplate timescale="90000" initialization="/home/test/timing_logic/package/audio/0/audio.mp4" media="/home/test/timing_logic/package/audio/0/$Time$.m4a" startnumber="16">&#xA;<segmenttimeline>&#xA;<s t="6751436" d="449280"></s>&#xA;<s t="7200716" d="451200"></s>&#xA;<s t="7651916" d="449280"></s>&#xA;<s t="8101196" d="374400"></s>&#xA;<s t="8551196" d="449280"></s>&#xA;<s t="9000476" d="451200"></s>&#xA;<s t="9451674" d="449280"></s>&#xA;<s t="9900956" d="449280"></s>&#xA;<s t="10350236" d="451200"></s>&#xA;<s t="10801434" d="374400"></s>&#xA;</segmenttimeline>&#xA;</segmenttemplate>&#xA;</representation>&#xA;</adaptationset>&#xA;<adaptationset contenttype="video" width="3840" height="2160" framerate="90000/3600" segmentalignment="true" par="16:9">&#xA;<representation bandwidth="1520392" codecs="hvc1.2.4.L153" mimetype="video/mp4" sar="1:1">&#xA;<segmenttemplate timescale="90000" initialization="/home/test/timing_logic/package/video/0/video.mp4" media="/home/test/timing_logic/package/video/0/$Time$.m4s" startnumber="19">&#xA;<segmenttimeline>&#xA;<s t="16954440" d="900000" r="4"></s>&#xA;</segmenttimeline>&#xA;</segmenttemplate>&#xA;</representation>&#xA;</adaptationset>&#xA;</period>&#xA;</mpd>&#xA;

    &#xA;

    When looking at the MPD, it seems that the shaka packager checks the PTS or DTS of the TS when creating a segment and recording the contents of the SegmentTimeline.&#xA;But I couldn't understand even by looking at the MPEG standard documentation and the DASH-IF documentation.

    &#xA;

    My question is whether the packager refers to PTS or DTS when creating a segment.&#xA;How are SegmentTimeline's S@t and S@d recorded ?&#xA;What algorithm is the SegmentTimeline recorded with ? Please help me. Thank you.

    &#xA;