Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (64)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (8517)

  • Matching a specific media format with ffmpeg/avconv

    5 mai 2020, par Markus A.

    I need to encode a video from static images in such a way that it format-matches another one so I can splice the video streams together.

    



    Here is the mediainfo of the file I'm trying to match :

    



    Video
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Baseline@L3.1
Format settings, CABAC                   : No
Format settings, ReFrames                : 1 frame
Codec ID                                 : 7
Duration                                 : 2mn 46s
Bit rate                                 : 1 614 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Standard                                 : NTSC
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Stream size                              : 32.0 MiB (87%)
Color primaries                          : BT.601 PAL
Transfer characteristics                 : BT.601
Matrix coefficients                      : BT.601


    



    So far, what I have been able to come up with is the following :

    



    avconv -f image2 -framerate 1.2 -i loop_%d.tif -c:v libx264 -preset veryslow -profile:v baseline -level:v 31 -b:v 1614K -refs 1 loop.flv


    



    This gets me to :

    



    Video
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Baseline@L3.1
Format settings, CABAC                   : No
Format settings, ReFrames                : 1 frame
Codec ID                                 : 7
Duration                                 : 2s 917ms
Bit rate                                 : 1 614 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 1.200 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 1.459
Stream size                              : 575 KiB
Writing library                          : x264 core 142 r2431 a5831aa
Encoding settings                        : cabac=0 / ref=1 / deblock=1:0:0 / analyse=0x1:0x131 / me=umh / subme=10 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=0 / cqm=0 / deadzone=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_intra=0 / bframes=0 / weightp=0 / keyint=250 / keyint_min=1 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=abr / mbtree=1 / bitrate=1614 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00


    



    Which, unfortunately, still isn't good enough as VLC Media Player crashes hard (just closes), logging main error: Failed to compensate for the format changes, removing all filters; main error: Failed to create video converter as soon as the stream splice occurs. I tried splicing another stream in that does have the exact same encoding, and it works fine. I'm also making sure to only splice on key-frames and I am including the NALU containing the AVCDecoderConfigRecord, so I'm pretty sure I'm not doing anything else wrong, especially since a couple other programs are fine with the splice. It's just VLC that expects an even closer match.

    



    Here are things I've tried :

    



      

    • Adding -vsync 2 to get variable frame rate mode. Doesn't change anything.
    • 


    • Adding -color_primaries bt470bg -color_trc gamma28 -colorspace bt470bg to try to get BT.601 PAL settings (several websites mentioned this). Doesn't change anything.
    • 


    • Adding -s ntsc to set the standard to NTSC. This also changes the resolution to 720x480 (not OK), and specifying -s 1280x720 in addition gets rid of the NTSC tag again.
    • 


    



    If anyone knows what flags I need to supply to get closer, that would be super-helpful ! The stream I'm trying to match is encoded on an Android device (it's a live-stream), so I'm assuming it is built using the standard Android MediaCoder framework, in case that helps.

    


  • ffprobe : update entry index after printing packet/media type

    21 avril 2022, par Stefano Sabatini
    ffprobe : update entry index after printing packet/media type
    

    Fix JSON output in case a frame or packet section contains a nested section.

    Fix trac issue http://trac.ffmpeg.org/ticket/8680.

    Signed-off-by : Marton Balint <cus@passwd.hu>

    • [DH] fftools/ffprobe.c
  • How to make media recorder api individual chunks playable by it self

    10 août 2024, par tedGuy

    I'm trying to send individual chunks to the server instead of sending the whole chunks at once. This way, I have Ffmpeg on my Rails server to convert these chunks to HLS and upload them to S3 to stream the video instantly. However, I've encountered an issue the Media Recorder only provides playable chunks for the first segment after that, they are not playable and need to be concatenated to play.

    &#xA;

    To avoid this, I've taken a different approach where I start a new Media Recorder every 3 seconds so that I get a playable chunk every time. However, this approach has its issues the video glitches a bit due to the delay when I stop and start a new Media Recorder. Is there a way to achieve this with ease ? This is my current status. please help !

    &#xA;

    const startVideoRecording = async (&#xA;    screenStream: MediaStream,&#xA;    audioStream: MediaStream&#xA;  ) => {&#xA;    setStartingRecording(true);&#xA;&#xA;    try {&#xA;      const res = await getVideoId();&#xA;      videoId.current = res;&#xA;    } catch (error) {&#xA;      console.log(error);&#xA;      return;&#xA;    }&#xA;&#xA;    const outputStream = new MediaStream();&#xA;    outputStream.addTrack(screenStream.getVideoTracks()[0]);&#xA;    outputStream.addTrack(audioStream.getAudioTracks()[0]); // Add audio track&#xA;&#xA;    const mimeTypes = [&#xA;      "video/webm;codecs=h264",&#xA;      "video/webm;codecs=vp9",&#xA;      "video/webm;codecs=vp8",&#xA;      "video/webm",&#xA;      "video/mp4",&#xA;    ];&#xA;&#xA;    let selectedMimeType = "";&#xA;    for (const mimeType of mimeTypes) {&#xA;      if (MediaRecorder.isTypeSupported(mimeType)) {&#xA;        selectedMimeType = mimeType;&#xA;        break;&#xA;      }&#xA;    }&#xA;&#xA;    if (!selectedMimeType) {&#xA;      console.error("No supported mime type found");&#xA;      return;&#xA;    }&#xA;&#xA;    const videoRecorderOptions = {&#xA;      mimeType: selectedMimeType,&#xA;    };&#xA;&#xA;    let chunkIndex = 0;&#xA;&#xA;    const startNewRecording = () => {&#xA;      // Stop the current recorder if it&#x27;s running&#xA;      if (&#xA;        videoRecorderRef.current &amp;&amp;&#xA;        videoRecorderRef.current.state === "recording"&#xA;      ) {&#xA;        videoRecorderRef.current.stop();&#xA;      }&#xA;&#xA;      // Create a new MediaRecorder instance&#xA;      const newVideoRecorder = new MediaRecorder(&#xA;        outputStream,&#xA;        videoRecorderOptions&#xA;      );&#xA;      videoRecorderRef.current = newVideoRecorder;&#xA;&#xA;      newVideoRecorder.ondataavailable = async (event) => {&#xA;        if (event.data.size > 0) {&#xA;          chunkIndex&#x2B;&#x2B;;&#xA;          totalSegments.current&#x2B;&#x2B;;&#xA;          const segmentIndex = totalSegments.current;&#xA;          console.log(event.data);&#xA;          handleUpload({ segmentIndex, chunk: event.data });&#xA;        }&#xA;      };&#xA;&#xA;      // Start recording with a 3-second interval&#xA;      newVideoRecorder.start();&#xA;    };&#xA;&#xA;    // Start the first recording&#xA;    startNewRecording();&#xA;&#xA;    // Set up an interval to restart the recording every 3 seconds&#xA;    recordingIntervalIdRef.current = setInterval(() => {&#xA;      startNewRecording();&#xA;    }, 3000);&#xA;&#xA;    setIsRecording(true);&#xA;    setStartingRecording(false);&#xA;  };&#xA;

    &#xA;