Recherche avancée

Médias (1)

Mot : - Tags -/biographie

Autres articles (67)

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

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

  • 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

Sur d’autres sites (8541)

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