Recherche avancée

Médias (1)

Mot : - Tags -/belgique

Autres articles (58)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

Sur d’autres sites (10034)

  • Using ffmpeg with Imagick

    19 mars 2014, par user3240613

    I am trying to generate thumbnails from videos in imagick, by extracting a single frame from them, using the ffmpeg application.

    I use this code currently :

    $image->newPseudoImage( null, null, 'ffmpeg:video.mp4[50]');

    It works. But it is not an ideal solution.
    I want to generate the thumbnail from a 50% position in the video, but i do not know how long the video is, so I can't do something like ffmpeg:video.mp4[500001]. And even if I knew the length, I still couldn't do it because running this ffmpeg:video.mp4[1000] takes almost 20 seconds to execute (ffmpeg:video.mp4[50] takes one or two seconds only).

    When i try to add some extra parameters like "ffmpeg:video.mp4[50] -ss 50" it returns error.

    The only other option I can think of, is using the exec to directly execute the ffmpeg command in the shell like "ffmpeg -i video.mp4 -vframes 1 -o screenshot.jpg" or something like that. Would that actually be more efficient solution than using the newpseudoimage method ?

  • ffmpeg not returning duration, cant play video until complete. Stream images 2 video via PHP

    17 février 2014, par John J

    I am real struggling with ffmpeg. I am trying to convert images to video, I have an ip camera which I am recording from. The recordings are mjpegs 1 frame per image.

    I am trying to create a script in php so I can recreate a video from date to date, this requires inputting the images via image2pipe and then creating the video.

    The trouble is, ffmpeg does return the duration and start stats, so I have no way of working out when the video is done or what percentage is done. The video won't play until its finished, and its not a very good UE.

    Any ideas of how I can resolve this, the video format can be anything I am open to suggestions.

    PHP :

    //Shell command
    exec('cat /image/dir/*.jpg | ffmpeg -y -c:v mjpeg -f image2pipe -r 10 -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart myvids/vidname.mp4 1>vidname.txt 2>&1')

    //This is loaded via javascript when the video is loaded (which is failing due to stats being wrong
    $video_play = "<video width="\&quot;320\&quot;" height="\&quot;240\&quot;" src="\&quot;myvids/vidname.mp4\&quot;" type="\&quot;video/mp4\&quot;\" controls="\&quot;controls\&quot;" preload="\&quot;none\&quot;"></video>";

    Javascript :

    //Javascript to create the loop until video is loaded
    <code class="echappe-js">&lt;script&gt;<br />
              $(document).ready(function() {<br />
                   var loader = $(&quot;#clip_load&quot;).percentageLoader();<br />
                   $.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh<br />
                   var interval = setInterval(updateProgress,1000);<br />
                   function updateProgress(){ $.get( &quot;&amp;#39;.base_url().&amp;#39;video/getVideoCompile_Process?l=&amp;#39;.$vid_name.&amp;#39;-output.txt&amp;amp;t=per&quot;, function( data ) { if(data=&gt;\&amp;#39;100\&amp;#39;){ $(&quot;#clip_load&quot;).html(\&amp;#39;&amp;#39;.$video_play.&amp;#39;\&amp;#39;); clearInterval(interval); }else{loader.setProgress(data); } });                    }<br />
               });<br />
               &lt;/script&gt;

    PHP (page is called via javascript :

    //This is the script which returns the current percentage
    $logloc = $this->input->get(&#39;l&#39;);
    $content = @file_get_contents($logloc);

    if($content){
       //get duration of source
       preg_match("/Duration: (.*?), start:/", $content, $matches);

       $rawDuration = $matches[1];

       //rawDuration is in 00:00:00.00 format. This converts it to seconds.
       $ar = array_reverse(explode(":", $rawDuration));
       $duration = floatval($ar[0]);
       if (!empty($ar[1])) $duration += intval($ar[1]) * 60;
       if (!empty($ar[2])) $duration += intval($ar[2]) * 60 * 60;

       //get the time in the file that is already encoded
       preg_match_all("/time=(.*?) bitrate/", $content, $matches);

       $rawTime = array_pop($matches);

       //this is needed if there is more than one match
       if (is_array($rawTime)){$rawTime = array_pop($rawTime);}

       //rawTime is in 00:00:00.00 format. This converts it to seconds.
       $ar = array_reverse(explode(":", $rawTime));
       $time = floatval($ar[0]);
       if (!empty($ar[1])) $time += intval($ar[1]) * 60;
       if (!empty($ar[2])) $time += intval($ar[2]) * 60 * 60;

       //calculate the progress
       $progress = round(($time/$duration) * 100);
       if ($this->input->get(&#39;t&#39;)==&#39;per&#39;){
           echo $progress;
       }else{
               echo "Duration: " . $duration . "<br />";
               echo "Current Time: " . $time . "<br />";
       echo "Progress: " . $progress . "%";}
    }else{ echo "cannot locate";}

    Thanks

  • Raspberry Pi 4 live streaming with ffmpeg [closed]

    12 décembre 2019, par Berri

    So speedify created a blog post and youtube video about making an IRL streaming backpack using the Elgato Cam Link 4k, Raspberry Pi 4, and ffmpeg.

    They gave pretty detailed instructions, and included downloads to prebuilt scripts/commands to get it all running once put together.
    Blog post :
    https://speedify.com/blog/how-to/build-irl-streaming-backpack-complete-guide/

    ffmpeg command from post :

    ffmpeg_command = “/home/pi/bin/ffmpeg -nostdin -re -f v4l2 -s ‘1280×720’ -framerate 24 -i /dev/video0 -f alsa -ac 2 -i hw:CARD=Link,DEV=0 -vcodec libx264 -framerate 24 -rtbufsize 1500k -s 1280×720 -preset ultrafast -pix_fmt yuv420p -crf 17 -force_key_frames ‘expr:gte(t,n_forced*2)’ -minrate 850k -maxrate 1000k -b:v 1000k -bufsize 1000k -acodec libmp3lame -rtbufsize 1500k -b 96k -ar 44100 -f flv – | ffmpeg -f flv -i – -c copy -f flv -drop_pkts_on_overflow 1 -attempt_recovery 1 -recovery_wait_time 1 rtmp://live.twitch.tv/app/live_” + streamKey + “‘\n”

    I replaced -i hw:card=link,dev=0 in that command with -i hw:2,0 because -i hw:card=link,dev=0 gave me "file does not exist" errors in the log. "streamkey" is filled with the appropriate key for my twitch.

    Github Resources + Instructions used :
    https://github.com/speedify/rpi-streaming-experiment

    I’m using all the exact same hardware as outlined in the post, and have gotten everything installed correctly as far as I can tell.
    But when I go to run the ffmpeg command, it seems like nothing actually gets sent over to twitch correctly.

    The log after trying to run it looks like this.
    If anybody has any insight as to what may be going wrong, it would be greatly appreciated.

    Starting ffmpeg
    ffmpeg version N-95970-gd5274f8 Copyright (c) 2000-2019 the FFmpeg developers
    built with gcc 8 (Raspbian 8.3.0-6+rpi1)  
    configuration: --prefix=/home/pi/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/pi/ffmpeg_build/include --extra-ldflags=-L/home/pi/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/pi/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree  
    libavutil 56. 36.101 / 56. 36.101  
    libavcodec 58. 64.101 / 58. 64.101  
    ffmpeg version N-95970-gd5274f8 libavformat 58. 35.101 / 58. 35.101  
    Copyright (c) 2000-2019 the FFmpeg developers libavdevice 58. 9.101 / 58. 9.101  
    libavfilter 7. 67.100 / 7. 67.100  
    built with gcc 8 (Raspbian 8.3.0-6+rpi1)  
    libswscale 5. 6.100 / 5. 6.100  
    configuration: --prefix=/home/pi/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/pi/ffmpeg_build/include --extra-ldflags=-L/home/pi/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/pi/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree  
    libswresample 3. 6.100 / 3. 6.100  
    libpostproc 55. 6.100 / 55. 6.100  
    libavutil 56. 36.101 / 56. 36.101  
    libavcodec 58. 64.101 / 58. 64.101  
    libavformat 58. 35.101 / 58. 35.101  
    libavdevice 58. 9.101 / 58. 9.101  
    libavfilter 7. 67.100 / 7. 67.100  
    libswscale 5. 6.100 / 5. 6.100  
    libswresample 3. 6.100 / 3. 6.100  
    libpostproc 55. 6.100 / 55. 6.100  
    [video4linux2,v4l2 @ 0x2aac5e0] The V4L2 driver changed the video from 1280x720 to 1920x1080  
    [video4linux2,v4l2 @ 0x2aac5e0] The driver changed the time per frame from 1/24 to 117/7013  
    [video4linux2,v4l2 @ 0x2aac5e0] Dequeued v4l2 buffer contains 4147200 bytes, but 3110400 were expected. Flags: 0x00012001.  
    Input #0, video4linux2,v4l2, from '/dev/video0':  
    Duration: N/A, start: 4683.201589, bitrate: 1491503 kb/s  
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, 1491503 kb/s, 59.94 fps, 59.94 tbr, 1000k tbn, 1000k tbc  
    Guessed Channel Layout for Input Stream #1.0 : stereo  
    Input #1, alsa, from 'hw:2,0':  
    Duration: N/A, start: 1576099663.557438, bitrate: 1536 kb/s  
    Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s  
    Please use -b:a or -b:v, -b is ambiguous  
    Stream mapping:  
    Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))  
    Stream #1:0 -> #0:1 (pcm_s16le (native) -> mp3 (libmp3lame))  
    [video4linux2,v4l2 @ 0x2aac5e0] Dequeued v4l2 buffer contains 4147200 bytes, but 3110400 were expected. Flags: 0x00012001.  
    Last message repeated 9 times
    [video4linux2,v4l2 @ 0x2aac5e0] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)  
    [video4linux2,v4l2 @ 0x2aac5e0] Dequeued v4l2 buffer contains 4147200 bytes, but 3110400 were expected. Flags: 0x00012001.  
    Last message repeated 28 times  
    terminated script  
    pipe:: could not find codec parameters  
    Exiting normally, received signal 15.  
    Last message repeated 15 times  
    [alsa @ 0x2aaf2c0] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)  
    Finishing stream 0:0 without any data written to it.  
    [libx264 @ 0x2abee40] using cpu capabilities: ARMv6 NEON  
    [libx264 @ 0x2abee40] profile Constrained Baseline, level 3.2, 4:2:0, 8-bit  
    [libx264 @ 0x2abee40] 264 - core 158 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=crf mbtree=0 crf=17.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=1000 vbv_bufsize=1000 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=0  
    Finishing stream 0:1 without any data written to it.  
    Output #0, flv, to 'pipe:':  
    Metadata:  
    encoder : Lavf58.35.101  
    Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 1280x720, q=-1--1, 96 kb/s, 59.94 fps, 1k tbn, 59.94 tbc  
    Metadata:  
    encoder : Lavc58.64.101 libx264  
    Side data:  
    cpb: bitrate max/min/avg: 1000000/0/96000 buffer size: 1000000 vbv_delay: N/A  
    Stream #0:1: Audio: mp3 (libmp3lame) ([2][0][0][0] / 0x0002), 44100 Hz, stereo, s16p  
    Metadata:  
    encoder : Lavc58.64.101 libmp3lame  
    [flv @ 0x2abda90] Failed to update header with correct duration.  
    [flv @ 0x2abda90] Failed to update header with correct filesize.  
    Error writing trailer of pipe:: Broken pipe  
    frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
    video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown  
    Exiting normally, received signal 15.        

    This message repeats until script is terminated with the Circuit Express button. For length, many instances of this line were cut out.

    [video4linux2,v4l2 @ 0x2aac5e0] Dequeued v4l2 buffer contains 4147200
    bytes, but 3110400 were expected. Flags: 0x00012001.
    Last message repeated xx times

    Output from v4l2-ctl --list-formats-ext

    ioctl: VIDIOC_ENUM_FMT
       Type: Video Capture

       [0]: 'YUYV' (YUYV 4:2:2)
           Size: Discrete 1920x1080
               Interval: Discrete 0.017s (59.940 fps)
       [1]: 'NV12' (Y/CbCr 4:2:0)
           Size: Discrete 1920x1080
               Interval: Discrete 0.017s (59.940 fps)
       [2]: 'YU12' (Planar YUV 4:2:0)
           Size: Discrete 1920x1080
               Interval: Discrete 0.017s (59.940 fps)

    Log output after ffmpeg command modification.

    Starting ffmpeg
    ffmpeg version N-95970-gd5274f8 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 8 (Raspbian 8.3.0-6+rpi1)
     configuration: --prefix=/home/pi/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/pi/ffmpeg_build/include --extra-ldflags=-L/home/pi/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/pi/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
     libavutil      56. 36.101 / 56. 36.101
     libavcodec     58. 64.101 / 58. 64.101
     libavformat    58. 35.101 / 58. 35.101
     libavdevice    58.  9.101 / 58.  9.101
     libavfilter     7. 67.100 /  7. 67.100
     libswscale      5.  6.100 /  5.  6.100
     libswresample   3.  6.100 /  3.  6.100
     libpostproc    55.  6.100 / 55.  6.100
    terminated script
    Input #0, video4linux2,v4l2, from '/dev/video0':
     Duration: N/A, bitrate: 1491503 kb/s
       Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, 1491503 kb/s, 59.94 fps, 59.94 tbr, 1000k tbn, 1000k tbc
    Guessed Channel Layout for Input Stream #1.0 : stereo
    Input #1, alsa, from 'hw:1,0':
     Duration: N/A, bitrate: 1536 kb/s
       Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    [rtmp @ 0x2605cd0] Cannot open connection tcp://live.twitch.tv:1935
    rtmp://live.twitch.tv/app/live: Immediate exit requested
    Exiting normally, received signal 15.