Recherche avancée

Médias (91)

Autres articles (77)

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

  • Problèmes fréquents

    10 mars 2010, par

    PHP et safe_mode activé
    Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
    La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site

  • Mediabox : ouvrir les images dans l’espace maximal pour l’utilisateur

    8 février 2011, par

    La visualisation des images est restreinte par la largeur accordée par le design du site (dépendant du thème utilisé). Elles sont donc visibles sous un format réduit. Afin de profiter de l’ensemble de la place disponible sur l’écran de l’utilisateur, il est possible d’ajouter une fonctionnalité d’affichage de l’image dans une boite multimedia apparaissant au dessus du reste du contenu.
    Pour ce faire il est nécessaire d’installer le plugin "Mediabox".
    Configuration de la boite multimédia
    Dès (...)

Sur d’autres sites (5405)

  • FFMPEG - How to wait until all blobs are written before finishing ffmpeg process when getting them from media recorder API

    7 novembre 2020, par Caio Nakai

    I'm using media recorder API to record a video from user's screen and sending the blobs through web socket to a nodejs server. The nodejs server is using the blobs to create a webm video file, the video is being created fine but with a delay, after the user clicks on the stop recording button it stops the media recorder api, however the server didn't finish the processing of all blobs (at least that's what I think it's happening) and then when I check the video file generated the last few seconds of the recording are missing I wonder if there's an way to solve this. Any help is appreciated :)

    


    This is the front-end code that sends the blobs to the nodejs server

    


      const startScreenCapture = async () => {
  try {
    let screenStream;
    videoElem = document.getElementById("myscreen");
    screenStream = await navigator.mediaDevices.getDisplayMedia(
      displayMediaOptions
    );

    const recorderOptions = {
      mimeType: "video/webm;codecs=vp9",
      videoBitsPerSecond: 3 * 1024 * 1024,
    };

    screenMediaRecorder = new MediaRecorder(screenStream, recorderOptions);
    screenMediaRecorder.start(1); // 1000 - the number of milliseconds to record into each Blob
    screenMediaRecorder.ondataavailable = (event) => {
      console.debug("Got blob data:", event.data);
      console.log("Camera stream: ", event.data);
      if (event.data && event.data.size > 0) {
        socket.emit("screen_stream", event.data);
      }
    };

    videoElem.srcObject = screenStream;
    // console.log("Screen stream", screenStream);
    // socket.emit("screen_stream", screenStream);
  } catch (err) {
    console.error("Error: " + err);
  }
};

const stopCapture = (evt) => {
  let tracks = videoElem.srcObject.getTracks();

  tracks.forEach((track) => track.stop());
  videoElem.srcObject = null;
  screenMediaRecorder.stop();
  socket.emit("stop_screen");
  socket.close();
};


    


    This is the nodejs back-end that handle the blobs and generates the videofile

    


      const ffmpeg2 = child_process.spawn("ffmpeg", [
    "-i",
    "-",
    "-c:v",
    "copy",
    "-c:a",
    "copy",
    "screen.webm",
  ]);


  socket.on("screen_stream", (msg) => {
    console.log("Writing screen blob! ");
    ffmpeg2.stdin.write(msg);
  });

  socket.on("stop_screen", () => {
    console.log("Stop recording..");
  });


    


  • ffmpeg rtmp live stream to Azure Media Services

    18 mars 2015, par Pilskalns

    Somehow I got publishing Azure Media Services to work, except there is huge frame drop (almost every frame) with those settings :

    ffmpeg -i "http://stream01/hls/live/playlist-mid.m3u8" -strict -2 -c:a aac -b:a 192k
    -ar 44100 -r 25 -g 60 -keyint_min 60 -b:v 2000k -c:v libx264 -bufsize 2000k
    -maxrate 2000k -f flv "rtmp://publishurl.working.is/mystream1"

    + I can’t play URL from Azure.

    When I publish to local nginx-rtmp server, frame drop stays and despite it I can play it. So, I believe that frame drop is ffmpeg related not Azure. Processor is not overloaded, available bandwidth is excellent.

    When I try original settings from this URL (at very bottom), I this get additionaly this ffmpeg error Past duration 0.719994 too large

    Here’s more from output :

    c:\ffmpeg\bin>ffmpeg -i "http://stream01/hls/live/playlist-mid.m3u8" -strict -2 -c:a aac -b:a 192k -ar 44100 -r 25 -g 60 -keyint_min 60 -b:v 2000k -c:
    v libx264 -bufsize 1000k -maxrate 2000k -f flv "rtmp://********.channel.mediaservices.windows.net:1935/live/9590f0be/mystream1"
    ffmpeg version N-69972-g6c91afe Copyright (c) 2000-2015 the FFmpeg developers
     built with gcc 4.9.2 (GCC)
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnu
    tls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-
    libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-l
    ibrtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --
    enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --ena
    ble-libxvid --enable-lzma --enable-decklink --enable-zlib
     libavutil      54. 19.100 / 54. 19.100
     libavcodec     56. 25.100 / 56. 25.100
     libavformat    56. 23.100 / 56. 23.100
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 11.100 /  5. 11.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, hls,applehttp, from 'http://stream01/hls/live/playlist-mid.m3u8':
     Duration: N/A, start: 3314.605633, bitrate: N/A
     Program 0
       Metadata:
         variant_bitrate : 1500000
       Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv), 854x480 [SAR 1:1 DAR 427:240], 50 fps, 50 tbr, 90k tbn, 100 tbc
       Metadata:
         variant_bitrate : 1500000
       Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 216 kb/s
       Metadata:
         variant_bitrate : 1500000
    [libx264 @ 0000000000306280] using SAR=1/1
    [libx264 @ 0000000000306280] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
    [libx264 @ 0000000000306280] profile High, level 3.0
    [libx264 @ 0000000000306280] 264 - core 144 r2525 40bb568 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options:
    cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 dead
    zone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_in
    tra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=60 keyint_min=31 scenecut=40 intra_refresh=0 rc_lookahea
    d=40 rc=cbr mbtree=1 bitrate=2000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=2000 vbv_bufsize=1000 nal_hrd=none filler=0 ip_ratio=1.
    40 aq=1:1.00
    Output #0, flv, to 'rtmp://*******.channel.mediaservices.windows.net:1935/live/37b4e25/mystream1':
     Metadata:
       encoder         : Lavf56.23.100
       Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 854x480 [SAR 1:1 DAR 427:240], q=-1--1, 2000 kb/s, 25 fps, 1k tbn, 25 tbc
       Metadata:
         variant_bitrate : 1500000
         encoder         : Lavc56.25.100 libx264
       Stream #0:1: Audio: aac ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 192 kb/s
       Metadata:
         variant_bitrate : 1500000
         encoder         : Lavc56.25.100 aac
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
     Stream #0:1 -> #0:1 (aac (native) -> aac (native))
    Press [q] to stop, [?] for help
    [flv @ 0000000000305820] Failed to update header with correct duration.1.4kbits/s dup=0 drop=10697
    [flv @ 0000000000305820] Failed to update header with correct filesize.
    frame=10714 fps= 24 q=-1.0 Lsize=  100583kB time=00:07:11.08 bitrate=1911.4kbits/s dup=0 drop=10701
    video:90024kB audio:10042kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.516478%
    [libx264 @ 0000000000306280] frame I:190   Avg QP:10.58  size: 72438
    [libx264 @ 0000000000306280] frame P:3406  Avg QP:14.32  size: 19296
    [libx264 @ 0000000000306280] frame B:7118  Avg QP:19.55  size:  1784
    [libx264 @ 0000000000306280] consecutive B-frames:  8.8%  4.4% 10.5% 76.3%
    [libx264 @ 0000000000306280] mb I  I16..4: 23.0% 20.2% 56.8%
    [libx264 @ 0000000000306280] mb P  I16..4:  2.7%  4.5%  5.2%  P16..4: 41.9% 11.6%  8.7%  0.0%  0.0%    skip:25.4%
    [libx264 @ 0000000000306280] mb B  I16..4:  0.1%  0.1%  0.2%  B16..8: 26.5%  2.2%  0.5%  direct: 3.2%  skip:67.1%  L0:51.0% L1:38.2% BI:10.8%
    [libx264 @ 0000000000306280] 8x8 transform intra:31.3% inter:36.6%
    [libx264 @ 0000000000306280] coded y,uvDC,uvAC intra: 80.5% 73.5% 51.1% inter: 16.1% 18.8% 5.8%
    [libx264 @ 0000000000306280] i16 v,h,dc,p: 21% 29% 27% 23%
    [libx264 @ 0000000000306280] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 32% 19%  4%  4%  4%  5%  4%  7%
    [libx264 @ 0000000000306280] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 30% 15%  4%  5%  5%  5%  4%  5%
    [libx264 @ 0000000000306280] i8c dc,h,v,p: 38% 30% 24%  8%
    [libx264 @ 0000000000306280] Weighted P-Frames: Y:1.8% UV:0.4%
    [libx264 @ 0000000000306280] ref P L0: 78.0%  8.5% 10.1%  3.3%  0.0%
    [libx264 @ 0000000000306280] ref B L0: 91.3%  7.9%  0.8%
    [libx264 @ 0000000000306280] ref B L1: 95.4%  4.6%
    [libx264 @ 0000000000306280] kb/s:1716.97
    Received signal 2: terminating.
  • python how to combine video file and media file without ffmpeg [on hold]

    27 juillet 2017, par daniel yanovsky

    Hello I am working on a program that is recording the screen. And I like to add an audio for the video.
    How can I do it without using ffmpeg.
    I want my program to do so.