Recherche avancée

Médias (1)

Mot : - Tags -/publier

Autres articles (82)

  • 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 ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (10810)

  • Realtime ffmpeg shell output PHP

    26 septembre 2013, par matthew johnston

    Alright, I've been fighting this problem for a few days. Works fine on my local windows machine but, can't seem to get it to work on my CentOS server. My script grabs the duration of the video being converted and also grabs the current seconds it has processed inside of ffmpeg. However, it is only grabbing the "input file" of the ffmpeg output and stopping there. I have tried using both pipes (STDOUT [1] & STDERR [2]) for some reason ffmpeg likes to output on the STDERR pipe. Weird.

    $filename = "somefilename.tmp";
    $descriptor = array(
       0 => array("pipe", "r"),
       1 => array("pipe", "w"),
       2 => array("pipe", "w")
    );

    $ffmpeg = "ffmpeg -i /var/www/spotloader/videos/flipped/tmp/".$file."_comb.ts -vcodec mpeg2video -acodec pcm_s16le -pix_fmt yuv422p -vtag xdvb -b:v 13000k -r 30000/1001 /var/www/spotloader/videos/flipped/tmp/".$file.".mov";

    //open the process
    $process = proc_open($ffmpeg, $descriptor, $pipes, NULL, $_ENV);

    //if the process opened
    if ( is_resource( $process ) == true )
    {
       //get process status
       $procStatus = proc_get_status( $process );

       //if its running, let node know
       if ( $procStatus['running'] )
       {
           //nodejs socket, nothing wrong here
           $this->_sendSocket('converting', array('filename' => str_replace('.tmp', '', $file)));
       }

       //while the process is running
       while( $procStatus['running'] === true )
       {
           //there is output in the pipe
           if ( !feof( $pipes[1] ) )
           {
               //get the output
               $data = fgets($pipes[1], 128);
               //match the outputs duration and save it.
               if(preg_match('/Duration:\s([0-9]{2}:[0-9]{2}:[0-9]{2})/', $data, $matches))
               {
                   static $duration;
                   $duration = $this->_convertToSeconds($matches[1]);
               }

               //match the outputs current encoding time
               if(preg_match('/time=([0-9]{2}:[0-9]{2}:[0-9]{2})/', $data, $matches))
               {
                   //convert to seconds works fine, so it is not included.
                   $curTime = $this->_convertToSeconds($matches[1]);
                   //nodejs socket, nothing wrong here
                   $this->_sendSocket('update', array('percent' => round( ($curTime / $duration) * 100), 'filename' => str_replace('.tmp', '', $file)));
               }
           }

           //update process status
           $procStatus = proc_get_status( $process );
       }

       //nodejs socket, nothing wrong here
       $this->_sendSocket('converted', array('percent' => 100, 'filename' => str_replace('.tmp', '', $file)));
    }

    FFMPEG output I receive using the PHP code above

    ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
    built on May 10 2013 15:14:14 with gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
    configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64
    --mandir=/usr/share/man --enable-shared --enable-runtime-cpudetect --enable-gpl
    --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads
    --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libopencv
    --enable-libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut
    --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
    --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis
    --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid
    --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
    -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC'
    --disable-stripping
    libavutil      52. 18.100 / 52. 18.100
    libavcodec     54. 92.100 / 54. 92.100
    libavformat    54. 63.104 / 54. 63.104
    libavdevice    54.  3.103 / 54.  3.103
    libavfilter     3. 42.103 /  3. 42.103
    libswscale      2.  2.100 /  2.  2.100
    libswresample   0. 17.102 /  0. 17.102
    libpostproc    52.  2.100 / 52.  2.100
    [mpegts @ 0x243c620] max_analyze_duration 5000000 reached at 5016000 microseconds
    Input #0, mpegts, from '/var/www/spotloader/videos/flipped/tmp/Wildlife10.tmp_comb.ts':
    Duration: 00:00:02.02, start: 1.389978, bitrate: 227018 kb/s
    Program 1
    Metadata:
     service_name    : Service01
     service_provider: FFmpeg
    Stream #0:0[0x100]: Video: mpeg2video (4:2:2) ([2][0][0][0] / 0x0002), yuv422p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x101](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, 1 channels (FL+FR), s16p, 128 kb/s

    FFMPEG output I'm expecting the "time=00:00:00" towards the end is what I need to capture in realtime. This is taken by running the FFMPEG command directly in the shell.

    ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
    built on May 10 2013 15:14:14 with gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4)
    configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64
    --mandir=/usr/share/man --enable-shared --enable-runtime-cpudetect --enable-gpl
    --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads
    --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libopencv
    --enable-libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut
    --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
    --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis
    --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid
    --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
    -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC'
    --disable-stripping
     libavutil      52. 18.100 / 52. 18.100
     libavcodec     54. 92.100 / 54. 92.100
     libavformat    54. 63.104 / 54. 63.104
     libavdevice    54.  3.103 / 54.  3.103
     libavfilter     3. 42.103 /  3. 42.103
     libswscale      2.  2.100 /  2.  2.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  2.100 / 52.  2.100
    [mpegts @ 0x10c9620] max_analyze_duration 5000000 reached at 5016000 microseconds
    Input #0, mpegts, from '/var/www/spotloader/videos/flipped/tmp/Wildlife10.tmp_comb.ts':
     Duration: 00:00:02.02, start: 1.389978, bitrate: 227018 kb/s
     Program 1
       Metadata:
         service_name    : Service01
         service_provider: FFmpeg
       Stream #0:0[0x100]: Video: mpeg2video (4:2:2) ([2][0][0][0] / 0x0002), yuv422p, 1920x1080 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
       Stream #0:1[0x101](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, 1 channels (FL+FR), s16p, 128 kb/s
    Channel layout 'stereo' with 2 channels does not match specified number of channels 1: ignoring specified channel layout
    Output #0, mov, to '/var/www/spotloader/videos/flipped/tmp/Wildlife10.tmp.mov':
     Metadata:
       encoder         : Lavf54.63.104
       Stream #0:0: Video: mpeg2video (xdvb / 0x62766478), yuv422p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 13000 kb/s, 30k tbn, 29.97 tbc
       Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (mpeg2video -> mpeg2video)
     Stream #0:1 -> #0:1 (mp2 -> pcm_s16le)
    Press [q] to stop, [?] for help
    Input stream #0:1 frame changed from rate:48000 fmt:s16p ch:1 chl:1 channels (FL+FR) to rate:48000 fmt:s16p ch:2 chl:stereo
    Input stream #0:1 frame changed from rate:48000 fmt:s16p ch:2 chl:stereo to rate:48000 fmt:s16p ch:1 chl:mono
    Input stream #0:1 frame changed from rate:48000 fmt:s16p ch:1 chl:mono to rate:48000 fmt:s16p ch:2 chl:stereo
    Input stream #0:0 frame changed from size:1920x1080 fmt:yuv422p to size:1280x720 fmt:yuv422p0
    Input stream #0:1 frame changed from rate:48000 fmt:s16p ch:2 chl:stereo to rate:44100 fmt:s16p ch:2 chl:stereo
    frame=  741 fps= 52 q=2.6 size=   43866kB time=00:00:24.65 bitrate=14573.5kbits/s dup=5 drop=0

    Any ideas ? What needs changing from the switch from Windows to CentOS ?

    EDIT :
    I got this to work using popen instead. It also reduced my code. If anyone else does have a solution go ahead and post it. Thanks !

  • Using FFmpeg's (libavformat) RTP data structures via dynamic linking

    15 septembre 2011, par ericreeves

    I want to use the RTP data structures (e.g. RTPMuxContext in libavformat/rtpenc.h) provided by FFmpeg's libavformat however they don't seem to be available with the following install :

    ffmpeg version 0.8.2.git, Copyright (c) 2000-2011 the FFmpeg developers
     built on Sep 14 2011 16:04:33 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
     configuration: --enable-shared --disable-mmx --arch=x86_64
     libavutil    51. 16. 0 / 51. 16. 0
     libavcodec   53. 14. 0 / 53. 14. 0
     libavformat  53. 12. 0 / 53. 12. 0
     libavdevice  53.  3. 0 / 53.  3. 0
     libavfilter   2. 40. 0 /  2. 40. 0
     libswscale    2.  1. 0 /  2.  1. 0

    When I look in /usr/local/include, I see the libavformat directory however only a few files are there : avformat.h, avio.h, and version.h. Of course, when I try to include libavformat/rtpenc.h I get "error : libavformat/rtpenc.h : No such file or directory"

    I'd like to achieve this by dynamic linking to the FFmpeg libraries (for LGPL compliance, among other reasons), but it doesn't seem to be possible.

    Is there a parameter for the configure script that I'm missing, or a post-installation step that I've neglected ?

  • Convert SWF file to FLV with FFMPEG & getting error "could not find codec parameters"

    15 septembre 2011, par Ritesh

    Hi I am trying to convert SWF file to FLV, but i am getting same eror

    C:\Users\Administrator>C:/ffmpeg/ffmpeg.exe -i C:/xampplite/htdocs/ffmpeg/1.swf \
    C:/xampplite/htdocs/ffmpeg/file1.flv

    FFmpeg version SVN-r16573, Copyright (c) 2000-2009 Fabrice Bellard, et al.
    configuration: --extra-cflags=-fno-common --enable-memalign-hack --enable-pthreads
    --enable-libmp3lame --enable-libxvid --enable-libvorbis --enable-libtheora
    --enable-libspeex --enable-libfaac --enable-libgsm --enable-libx264
    --enable-libschroedinger --enable-avisynth --enable-swscale --enable-gpl
     libavutil 49.12. 0 / 49.12. 0
     libavcodec 52.10. 0 / 52.10. 0
     libavformat 52.23. 1 / 52.23. 1
     libavdevice 52. 1. 0 / 52. 1. 0
     libswscale 0. 6. 1 / 0. 6. 1
    built on Jan 13 2009 02:57:09, gcc: 4.2.4
    C:/xampplite/htdocs/ffmpeg/1.swf: could not find codec parameters

    Please solve this problem, what i am doing wrong ??