Recherche avancée

Médias (3)

Mot : - Tags -/pdf

Autres articles (74)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

  • 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 (...)

Sur d’autres sites (9523)

  • Merge commit ’458446acfa1441d283dacf9e6e545beb083b8bb0’

    15 novembre 2013, par Michael Niedermayer
    Merge commit ’458446acfa1441d283dacf9e6e545beb083b8bb0’
    

    * commit ’458446acfa1441d283dacf9e6e545beb083b8bb0’ :
    lavc : Edge emulation with dst/src linesize

    Conflicts :
    libavcodec/cavs.c
    libavcodec/h264.c
    libavcodec/hevc.c
    libavcodec/mpegvideo_enc.c
    libavcodec/mpegvideo_motion.c
    libavcodec/rv34.c
    libavcodec/svq3.c
    libavcodec/vc1dec.c
    libavcodec/videodsp.h
    libavcodec/videodsp_template.c
    libavcodec/vp3.c
    libavcodec/vp8.c
    libavcodec/wmv2.c
    libavcodec/x86/videodsp.asm
    libavcodec/x86/videodsp_init.c

    Changes to the asm are not merged, they are left for volunteers or
    in their absence for later.
    The changes this merge introduces are reordering of the function
    arguments

    See : face578d56c2d1375e40d5e2a28acc122132bc55
    Merged-by : Michael Niedermayer <michaelni@gmx.at>

    • [DH] libavcodec/cavs.c
    • [DH] libavcodec/diracdec.c
    • [DH] libavcodec/h264.c
    • [DH] libavcodec/hevc.c
    • [DH] libavcodec/mpegvideo.c
    • [DH] libavcodec/mpegvideo_enc.c
    • [DH] libavcodec/mpegvideo_motion.c
    • [DH] libavcodec/rv34.c
    • [DH] libavcodec/snow.c
    • [DH] libavcodec/svq3.c
    • [DH] libavcodec/vc1dec.c
    • [DH] libavcodec/videodsp.h
    • [DH] libavcodec/videodsp_template.c
    • [DH] libavcodec/vp3.c
    • [DH] libavcodec/vp56.c
    • [DH] libavcodec/vp8.c
    • [DH] libavcodec/vp9.c
    • [DH] libavcodec/wmv2.c
    • [DH] libavcodec/x86/dsputil_mmx.c
    • [DH] libavcodec/x86/videodsp_init.c
  • FFMPEG/DASH-LL creates audio and video chunks at different rates ; player is confused (404 errors)

    26 mai 2021, par Danny

    I'm trying to create a MPEG-DASH "live" stream from a static file to test various low latency modes. The DASH muxer in FFmpeg creates two AdaptationSets, one for video chunks and one for audio chunks.

    &#xA;

    However, the audio and video chunk files are not created at the same rate (should they be ?). ie, here stream0 are the video chunks and stream1 are the audio chunks. After a few seconds of running, the webroot directory contains :

    &#xA;

    chunk-stream0-00001.m4s  chunk-stream1-00001.m4s  &#xA;chunk-stream0-00002.m4s  chunk-stream1-00002.m4s  &#xA;chunk-stream0-00003.m4s  chunk-stream1-00003.m4s  &#xA;chunk-stream0-00004.m4s  chunk-stream1-00004.m4s  &#xA;                         chunk-stream1-00005.m4s  &#xA;                         chunk-stream1-00006.m4s  &#xA;                         chunk-stream1-00007.m4s  &#xA;                         chunk-stream1-00008.m4s  &#xA;                         chunk-stream1-00009.m4s  &#xA;master.mpd  &#xA;init-stream0.m4s  &#xA;init-stream1.m4s  &#xA;

    &#xA;

    The stream doesn't load (or play) on either dash.js or shaka-player and there are lots of 404 (Not Found) errors for the video chunks. The player is requesting chunks from both stream0 and stream1 in sequence, ie, stream0-001 + stream1-001, then stream0-002 + stream1-002 and so on.

    &#xA;

    But since stream0 only goes from 001 to 004, there are lots of 404 errors as it tries to load stream0-005 through 009.

    &#xA;

    The gap gets wider after letting FFmpeg run for a while. eg, stream0 is 62 to 75 but stream1 is 174 to 187. Reloading the player page at this point fails with dash.all.debug.js:15615 [2055][FragmentController] No video bytes to push or stream is inactive. and shows 404 errors stream0 chunk 188 (which doesn't exist yet !)

    &#xA;

    enter image description here

    &#xA;

    The FFmpeg command was adopted from DASH streaming from the top-down :

    &#xA;

    ffmpeg -re -i /mnt/swdevel/TestStreams/H264/ThreeHourMovie.mp4 \&#xA;-c:v libx264 -x264-params keyint=120:scenecut=0 -b:v 1M -c:a copy \&#xA;-f dash -dash_segment_type mp4 \&#xA; -seg_duration 2 \&#xA; -target_latency 3 \&#xA; -frag_type duration \&#xA; -frag_duration 0.2 \&#xA; -window_size 10 \&#xA; -extra_window_size 3 \&#xA; -streaming 1 \&#xA; -ldash 1 \&#xA; -use_template 1 \&#xA; -use_timeline 0 \&#xA; -write_prft 1 \&#xA; -fflags &#x2B;nobuffer&#x2B;flush_packets \&#xA; -format_options "movflags=&#x2B;cmaf" \&#xA; -utc_timing_url "/pelican/testPlayers/time.php" \&#xA; master.mpd&#xA;

    &#xA;

    And the dash.js player code is very simple :

    &#xA;

    const srcUrl = "../ottWebRoot/playerTest/master.mpd"; &#xA;&#xA;var player = dashjs.MediaPlayer().create();&#xA;&#xA;let autoPlay = false;&#xA;player.initialize(document.querySelector("#videoTagId"), srcUrl, autoPlay);&#xA;&#xA;player.updateSettings(&#xA;{&#xA;    streaming :&#xA;    {&#xA;        lowLatencyEnabled : true,&#xA;        liveDelay : 2,&#xA;        jumpGaps : true,&#xA;        jumpLargeGaps : true,&#xA;        smallGapLimit : 1.5,&#xA;    }&#xA;});&#xA;

    &#xA;

    To provide the UTCTiming element in the manifest, the small time.php URL returns a UTC time from the web server :

    &#xA;

    &lt;?php&#xA;    print gmdate("Y-m-d\TH:i:s\Z");&#xA;?>&#xA;

    &#xA;

    (It also shows 404 errors for the latest stream1/audio chunk, that's likely a different problem)

    &#xA;

    I'm not sure what to try next. Any and suggestions greatly appreciated.

    &#xA;

    EDIT I

    &#xA;

    The suggestion by @Anonymous Coward to change the key interval improved things a lot. The chunks for stream0 and stream1 are in lock-step and have identical sequence numbers.

    &#xA;

    However, there are still many 404 errors, both on initial page load (without pressing play) and during playback.

    &#xA;

    I ran watch -n 1 ls -lt code> and compared side-by-side to the errors in the browser console.  It&#x27;s hard to compare but it <em>looks</em> like the browser is trying to fetch files "on the play edge" which haven&#x27;t yet been created by FFmpeg.  See the pic below.

    &#xA;

    How do I instruct the browser to wait just a bit more before fetching the edge chunks ?

    &#xA;

    enter image description here

    &#xA;

    EDIT II

    &#xA;

    Using shaka-player instead of dash.js plays properly without 404 errors. Configured as :

    &#xA;

        player.configure(&#xA;    {&#xA;        streaming: &#xA;        {&#xA;            lowLatencyMode: true,&#xA;            inaccurateManifestTolerance: 0,&#xA;            rebufferingGoal: 0.1,&#xA;        }&#xA;        &#xA;    });&#xA;

    &#xA;

    Client

    &#xA;

      &#xA;
    • MacOS 10.12
    • &#xA;

    • dash.js latest 3.2.2
    • &#xA;

    • Chrome 79, Safari 12, FireFox v ?
    • &#xA;

    &#xA;

    Server

    &#xA;

      &#xA;
    • Apache 2.4.37
    • &#xA;

    • PHP 7.2.4 (for time function only)
    • &#xA;

    • Centos 8
    • &#xA;

    &#xA;

    (For reference, here is the mpd file generated by FFmpeg)

    &#xA;

    &lt;?xml version="1.0" encoding="utf-8"?>&#xA;<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" minimumupdateperiod="PT500S" availabilitystarttime="2021-05-24T14:50:00.263Z" publishtime="2021-05-24T15:22:45.335Z" timeshiftbufferdepth="PT50.0S" maxsegmentduration="PT2.0S" minbuffertime="PT5.0S">&#xA;    <programinformation>&#xA;    </programinformation>&#xA;    <servicedescription>&#xA;        <latency target="3000" referenceid="0"></latency>&#xA;    </servicedescription>&#xA;    <period start="PT0.0S">&#xA;        <adaptationset contenttype="video" startwithsap="1" segmentalignment="true" bitstreamswitching="true" framerate="24/1" maxwidth="1280" maxheight="682" par="15:8" lang="und">&#xA;            <resync dt="200000" type="0"></resync>&#xA;            <representation mimetype="video/mp4" codecs="avc1.64081f" bandwidth="1000000" width="1280" height="682" sar="1023:1024">&#xA;                <producerreferencetime inband="true" type="captured" wallclocktime="2021-05-24T14:50:00.263Z" presentationtime="0">&#xA;                    <utctiming schemeiduri="urn:mpeg:dash:utc:http-xsdate:2014" value="/pelican/testPlayers/time.php"></utctiming>&#xA;                </producerreferencetime>&#xA;                <resync dt="5000000" type="1"></resync>&#xA;                <segmenttemplate timescale="1000000" duration="2000000" availabilitytimeoffset="1.800" availabilitytimecomplete="false" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">&#xA;                </segmenttemplate>&#xA;            </representation>&#xA;        </adaptationset>&#xA;        <adaptationset contenttype="audio" startwithsap="1" segmentalignment="true" bitstreamswitching="true" lang="und">&#xA;            <resync dt="200000" type="0"></resync>&#xA;            <representation mimetype="audio/mp4" codecs="mp4a.40.2" bandwidth="116317" audiosamplingrate="48000">&#xA;                <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>&#xA;                <producerreferencetime inband="true" type="captured" wallclocktime="2021-05-24T14:50:00.306Z" presentationtime="0">&#xA;                    <utctiming schemeiduri="urn:mpeg:dash:utc:http-xsdate:2014" value="/pelican/testPlayers/time.php"></utctiming>&#xA;                </producerreferencetime>&#xA;                <resync dt="21333" type="1"></resync>&#xA;                <segmenttemplate timescale="1000000" duration="2000000" availabilitytimeoffset="1.800" availabilitytimecomplete="false" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">&#xA;                </segmenttemplate>&#xA;            </representation>&#xA;        </adaptationset>&#xA;    </period>&#xA;    <utctiming schemeiduri="urn:mpeg:dash:utc:http-xsdate:2014" value="/pelican/testPlayers/time.php"></utctiming>&#xA;</mpd>&#xA;

    &#xA;

  • SOX got nothing from SoundFlower

    12 septembre 2016, par xiaose

    For some reason on some comps SoundFlower does not catch audio.
    I.e. there are SoundFlower but when I switch input\output to the SoundFlower I cannot get any sound. I have got only not empty file without any sound.

    Okay, how I try to get the sound...

    Just FYI :

    $ system_profiler SPSoftwareDataType

    Software:

       System Software Overview:

         System Version: OS X 10.10.5 (14F1912)
         Kernel Version: Darwin 14.5.0
         Boot Volume: Macintosh HD
         Boot Mode: Normal
         Computer Name: Craig Computer
         User Name: Craig (craigm)
         Secure Virtual Memory: Enabled
         Time since boot: 1 day22:12

    Gonna check is AVFoundation works :

    $ ./ffmpeg -h demuxer=avfoundation

    Demuxer avfoundation [AVFoundation input device]:
    AVFoundation input device AVOptions:
     -list_devices      <int>        .D...... list available devices (from 0 to 1) (default false)
        true                         .D......
        false                        .D......
     -video_device_index <int>        .D...... select video device by index for devices with same name (starts at 0) (from -1 to INT_MAX) (default -1)
     -audio_device_index <int>        .D...... select audio device by index for devices with same name (starts at 0) (from -1 to INT_MAX) (default -1)
     -pixel_format          .D...... set pixel format (default yuv420p)
     -framerate          .D...... set frame rate (default "ntsc")
     -video_size         .D...... set video size
     -capture_cursor    <int>        .D...... capture the screen cursor (from 0 to 1) (default 0)
     -capture_mouse_clicks <int>        .D...... capture the screen mouse clicks (from 0 to 1) (default 0)
    </int></int></int></int></int>

    Gonna get list of AVFoundation audio devices :

    $ ./ffmpeg -f avfoundation -list_devices true -i ’’

    ffmpeg version 3.1.1-tessus Copyright (c) 2000-2016 the FFmpeg developers
     built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
     configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --as=yasm --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzmq --enable-version3 --disable-ffplay --disable-indev=qtkit --disable-indev=x11grab_xcb
     libavutil      55. 28.100 / 55. 28.100
     libavcodec     57. 48.101 / 57. 48.101
     libavformat    57. 41.100 / 57. 41.100
     libavdevice    57.  0.101 / 57.  0.101
     libavfilter     6. 47.100 /  6. 47.100
     libswscale      4.  1.100 /  4.  1.100
     libswresample   2.  1.100 /  2.  1.100
     libpostproc    54.  0.100 / 54.  0.100
    [AVFoundation input device @ 0x7fda40421000] AVFoundation video devices:
    [AVFoundation input device @ 0x7fda40421000] [0] Built-in iSight
    [AVFoundation input device @ 0x7fda40421000] [1] Capture screen 0
    [AVFoundation input device @ 0x7fda40421000] AVFoundation audio devices:
    [AVFoundation input device @ 0x7fda40421000] [0] Soundflower (64ch)
    [AVFoundation input device @ 0x7fda40421000] [1] Built-in Microphone
    [AVFoundation input device @ 0x7fda40421000] [2] Soundflower (2ch)
    [AVFoundation input device @ 0x7fda40421000] [3] Built-in Input
    : Input/output error

    Okay, we have SoundFlower in devices :

    [AVFoundation input device @ 0x7fda40421000] [2] Soundflower (2ch)

    Then I run AppleScript which gonna switch to the "SoundFlower (2ch)" :

    enableSF("input")

    enableSF("output")

    Where enableSF(stdname) is :

    on enableSF(stdname)    
       tell application "System Preferences"  
           -- activate
           tell anchor stdname of pane "com.apple.preference.sound" to reveal  
           tell application "System Events"    
               tell application process "System Preferences"  
                   tell tab group 1 of window 1    
                       delay 2
                       set rowslist to selected of row of table 1 of scroll area 1
                       set counter to 0    
                       repeat with id in rowslist  
                           set counter to counter + 1  
                           set rowName to (value of text field 1 of row counter of table 1 of scroll area 1)  

                           set output to stdname &amp; " " &amp; rowName  
                           set scrpt to "echo \"" &amp; output &amp; "\" >> ~/Desktop/ds.log"  
                           do shell script scrpt  

                           if (rowName is equal to "Soundflower (2ch)") then  
                               set selected of row counter of table 1 of scroll area 1 to true

                               set output to "
                               !!! FOUND SF for " &amp; stdname &amp; " " &amp; rowName    
                               set scrpt to "echo \"" &amp; output &amp; "\" >> ~/Desktop/ds.log"  
                               log output  
                               do shell script scrpt
                               exit repeat
                           end if  
                       end repeat  
                   end tell    
               end tell    
           end tell    
       end tell    
    end enableSF    

    In result I have got this :

    input Internal Microphone
    input Line In
    input Digi CoreAudio Device
    input Soundflower (2ch)

           !!! FOUND SF for input Soundflower (2ch)

    output Headphones
    output Digi CoreAudio Device
    output Soundflower (2ch)

           !!! FOUND SF for output Soundflower (2ch)

    It means that we switch to the SoundFlower. Actually the same can be done by hands, but the script is more reliable as for me.

    Okay, next we can try to save some audio via SOX :

    $ /Applications/sox-14.3.2/sox -d /Desktop/out.wav

    Input File     : 'default' (coreaudio)
    Channels       : 2
    Sample Rate    : 44100
    Precision      : 32-bit
    Sample Encoding: 32-bit Signed Integer PCM


    In:0.00% 00:00:00.00 [00:00:00.00] Out:0     [      |      ]        Clip:0    
    ...
    ...
    ...
    In:0.00% 00:00:02.51 [00:00:00.00] Out:106k  [      |      ]        Clip:0    
    ...
    ...
    ...
    In:0.00% 00:00:11.80 [00:00:00.00] Out:516k  [      |      ]        Clip:0    /Applications/sox-14.3.2/sox WARN coreaudio: coreaudio: unhandled buffer overrun.  Data discarded.
    ...
    ...
    ...    
    In:0.00% 00:00:12.35 [00:00:00.00] Out:545k  [      |      ]        Clip:0    /Applications/sox-14.3.2/sox WARN coreaudio: coreaudio: unhandled buffer overrun.  Data discarded.
    ...
    ...
    ...
    In:0.00% 00:00:13.28 [00:00:00.00] Out:582k  [      |      ]        Clip:0    
    Aborted.

    And, as you can see, the SOX gives me an empty file. Rather, it gives the data, but there is no sound.

    This happens on all OS from 10.10 to 10.11.6. Normal output should be this type :

    In:0.00% 00:00:00.28 [00:00:00.00] Out:8.19k [======|======]        Clip:0      
    ...
    ...
    ...
    In:0.00% 00:00:04.37 [00:00:00.00] Out:188k  [ -====|===== ] Hd:1.1 Clip:0
    ...
    ...
    ...    
    In:0.00% 00:00:08.82 [00:00:00.00] Out:385k  [======|=====-] Hd:1.1 Clip:0      
    In:0.00% 00:00:09.01 [00:00:00.00] Out:393k  [-=====|=====-] Hd:1.1 Clip:0      
    In:0.00% 00:00:09.20 [00:00:00.00] Out:401k  [======|======] Hd:1.1 Clip:0