Recherche avancée

Médias (1)

Mot : - Tags -/sintel

Autres articles (73)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (8268)

  • simple_idct : x86 : Drop disabled IDCT implementation

    1er août 2016, par Diego Biurrun
    simple_idct : x86 : Drop disabled IDCT implementation
    

    This gem has been disabled since 2001.

    • [DBH] libavcodec/x86/simple_idct.c
  • Transcoding fMP4 to HLS while writing on iOS using FFmpeg

    29 avril 2017, par bclymer

    TL ;DR

    I want to convert fMP4 fragments to TS segments (for HLS) as the fragments are being written using FFmpeg on an iOS device.

    Why ?

    I’m trying to achieve live uploading on iOS while maintaining a seamless, HD copy locally.

    What I’ve tried

    1. Rolling AVAssetWriters where each writes for 8 seconds, then concating the MP4s together via FFmpeg.

      What went wrong - There are blips in the audio and video at times. I’ve identified 3 reasons for this.

      1) Priming frames for audio written by the AAC encoder creating gaps.

      2) Since video frames are 33.33ms long, and audio frames 0.022ms long, it’s possible for them to not line up at the end of a file.

      3) The lack of frame accurate encoding present on Mac OS, but not available for iOS Details Here

    2. FFmpeg muxing a large video only MP4 file with raw audio into TS segments. The work was based off the Kickflip SDK

      What Went Wrong - Every once in a while an audio only file would get uploaded, with no video whatsoever. Never able to reproduce it in-house, but it was pretty upsetting to our users when they didn’t record what they thought they did. There were also issues with accurate seeking on the final segments, almost like the TS segments were incorrectly time stamped.

    What I’m thinking now

    Apple was pushing fMP4 at WWDC this year (2016) and I hadn’t looked into it much at all before that. Since an fMP4 file can be read, and played while it’s being written, I thought that it would be possible for FFmpeg to transcode the file as it’s being written as well, as long as we hold off sending the bytes to FFmpeg until each fragment within the file is finished.

    However, I’m not familiar enough with the FFmpeg C API, I only used it briefly within attempt #2.

    What I need from you

    1. Is this a feasible solution ? Is anybody familiar enough with fMP4 to know if I can actually accomplish this ?
    2. How will I know that AVFoundation has finished writing a fragment within the file so that I can pipe it into FFmpeg ?
    3. How can I take data from a file on disk, chunk at a time, pass it into FFmpeg and have it spit out TS segments ?
  • dashjs can't find initialization segment on manifest.mpd

    30 avril 2016, par Abelardo Mendoza

    I am following this tutorial to stream a WebM. I have no issues running the ffmpeg commands to generate the videos/audio/manifest files but when I try to run it locally, there’s no video or audio at all and dashjs floods the console with :

    Searching for initialization.    
    Start searching for initialization.    
    Perform init search: http://localhost:8080/video_1280x720_500k.webm    
    Perform SIDX load: http://localhost:8080/video_640x360_750k.webm    
    Perform SIDX load: http://localhost:8080/video_1280x720_500k.webm

    Writing that to console until I stop the server. I have tried using other mpd files such as this, which is used on the dashjs quickstart and it plays the video without any problems.

    I used this guide to install the latest version of ffmpeg on Ubuntu 14.04 LTS :

    ffmpeg version N-79688-g3cb3ddd Copyright (c) 2000-2016 the FFmpeg developers
    built with gcc 5.3.0 (Ubuntu 5.3.0-3ubuntu1~14.04) 20151204
    configuration: --prefix=/home/ab/cpp/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/ab/cpp/ffmpeg_build/include --extra-ldflags=-L/home/ab/cpp/ffmpeg/lib --bindir=/home/ab/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
    libavutil      55. 23.100 / 55. 23.100
    libavcodec     57. 38.100 / 57. 38.100
    libavformat    57. 34.103 / 57. 34.103
    libavdevice    57.  0.101 / 57.  0.101
    libavfilter     6. 44.100 /  6. 44.100
    libswscale      4.  1.100 /  4.  1.100
    libswresample   2.  0.101 /  2.  0.101
    libpostproc    54.  0.100 / 54.  0.100

    When running on ffmpeg :

    ffmpeg \
    -f webm_dash_manifest -i video_160x90_250k.webm \
    -f webm_dash_manifest -i video_320x180_500k.webm \
    -f webm_dash_manifest -i video_640x360_750k.webm \
    -f webm_dash_manifest -i video_640x360_1000k.webm \
    -f webm_dash_manifest -i video_1280x720_500k.webm \
    -f webm_dash_manifest -i audio_128k.webm \
    -c copy -map 0 -map 1 -map 2 -map 3 -map 4 -map 5 \
    -f webm_dash_manifest \
    -adaptation_sets "id=0,streams=0,1,2,3,4 id=1,streams=5" \
    manifest.mpd

    It generates the following manifest.mpd :

    <?xml version="1.0" encoding="UTF-8"?>
    <mpd xmlns="urn:mpeg:DASH:schema:MPD:2011" type="static" mediapresentationduration="PT117.726S" minbuffertime="PT1S" profiles="urn:webm:dash:profile:webm-on-demand:2012">
     <period start="PT0S" duration="PT117.726S">
       <adaptationset mimetype="video/webm" codecs="vp9" lang="eng" bitstreamswitching="true" subsegmentalignment="true" subsegmentstartswithsap="1">
         <representation bandwidth="198155" width="160" height="90">
           <baseurl>video_160x90_250k.webm</baseurl>
           <segmentbase indexrange="2007834-2008211">
             <initialization range="0-437"></initialization>
           </segmentbase>
         </representation>
         <representation bandwidth="459264" width="320" height="180">
           <baseurl>video_320x180_500k.webm</baseurl>
           <segmentbase indexrange="4459996-4460374">
             <initialization range="0-439"></initialization>
           </segmentbase>
         </representation>
         <representation bandwidth="718495" width="640" height="360">
           <baseurl>video_640x360_750k.webm</baseurl>
           <segmentbase indexrange="6614036-6614414">
             <initialization range="0-441"></initialization>
           </segmentbase>
         </representation>
         <representation bandwidth="931445" width="640" height="360">
           <baseurl>video_640x360_1000k.webm</baseurl>
           <segmentbase indexrange="8309082-8309460">
             <initialization range="0-441"></initialization>
           </segmentbase>
         </representation>
         <representation bandwidth="821274" width="1280" height="720">
           <baseurl>video_1280x720_500k.webm</baseurl>
           <segmentbase indexrange="8728812-8729190">
             <initialization range="0-441"></initialization>
           </segmentbase>
         </representation>
       </adaptationset>
       <adaptationset mimetype="audio/webm" codecs="vorbis" lang="eng" audiosamplingrate="44100" bitstreamswitching="true" subsegmentalignment="true" subsegmentstartswithsap="1">
         <representation bandwidth="107104">
           <baseurl>audio_128k.webm</baseurl>
           <segmentbase indexrange="1538710-1539184">
             <initialization range="0-4112"></initialization>
           </segmentbase>
         </representation>
       </adaptationset>
     </period>
    </mpd>

    The index.html has a few changes because dash.js changed the way the player gets initialized.

       
           
           
           <code class="echappe-js">&lt;script src=&quot;http://cdn.dashjs.org/latest/dash.all.debug.js&quot;&gt;&lt;/script&gt;

    And here is Chromium’s log file. I’m converting this webm from this site.

    If I missed out any other relevant information or if anyone can guide me into the right direction, please let me know.

    Edit :

    Like Will Law mentioned, using the Shaka Player worked without any issues with my current manifest. Hope this helps anyone else.