Recherche avancée

Médias (1)

Mot : - Tags -/framasoft

Autres articles (106)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Qu’est ce qu’un éditorial

    21 juin 2013, par

    Ecrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
    Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
    Vous pouvez personnaliser le formulaire de création d’un éditorial.
    Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...)

Sur d’autres sites (7630)

  • HTML 5 how to record filtered canvas

    16 mars 2015, par sercanD

    I am gonna use my webcam as a source and show my view on webpage , than I will manipulate my view like (blacknwhite , fiseye, etc.) and show that manipulated video in my canvas.
    An example ( http://photobooth.orange-coding.net/ )

    Ok everything is cool for now . I can capture that manipulated canvas as a image.

    Is there any way to record that manipulated canvas as video ?

    I also found an example (https://www.webrtc-experiment.com/ffmpeg/audio-plus-canvas-recording.html)

    But when I tried that code on my webcam recording project , it’s just recording my source view(not blacknwhite) . It is not implementing my effect to record.

    Any idea or is it possible ?
    Thank you.

  • probing individual klv streams for specific signature/header

    17 juin 2019, par J Heyman

    Currently, the software I support processes the different streams within a video container (.ts, .mp4, .mpg, etc) without any issues as long as there is only one(1) type of each codec stream.

    I’ve recently encountered a video sample that actually contains three(3) identified AV_CODE_ID_SMPTE_KLV streams. As I loop through the three streams, one of them is the stream I need.
    I haven’t been able to figure out an easy way to do the specific query I need (check for known header bytes in the stream).

       ...
       for (i = 0; i < nb_streams; i++) {
          int real_stream_index = program ? program[i] : i;
          AVStream *st          = ic->streams[real_stream_index];
          AVCodecParameters *par = st->codecpar;
          if (par->codec_type != type)
             continue;
          if (id != AV_CODEC_ID_NONE) {
             if (par->codec_id != id)
                continue;
          }
          if (wanted_stream_nb >= 0 && real_stream_index != wanted_stream_nb)
             continue;
          if (type == AVMEDIA_TYPE_AUDIO && !(par->channels && par->sample_rate))
             continue;
          disposition = !(st->disposition & (AV_DISPOSITION_HEARING_IMPAIRED | AV_DISPOSITION_VISUAL_IMPAIRED));
          count = st->codec_info_nb_frames;
          bitrate = par->bit_rate;
          multiframe = FFMIN(5, count);
          if ((best_disposition >  disposition) ||
              (best_disposition == disposition && best_multiframe >  multiframe) ||
              (best_disposition == disposition && best_multiframe == multiframe && best_bitrate >  bitrate) ||
              (best_disposition == disposition && best_multiframe == multiframe && best_bitrate == bitrate && best_count >= count))
             continue;
          best_disposition = disposition;
          best_count   = count;
          best_bitrate = bitrate;
          best_multiframe = multiframe;
          ret          = real_stream_index;

    My thought was to add another || to the complex if{} above, but I haven’t been able to figure out how to do the comparison I need (looking for the header bytes).

    I’ve looked into existing documentation, and thought that accessing the probe_data structure within the AVStream contained within the AVFormatContext structure would give me the first few bytes of the stream. No such luck, as the probe_data structure is empty even though we’ve done a probe on the file itself.

    fprintf(stderr, "Filename: %s\t buf_size: %d\n", st-> probe_data.filename, st-> probe_data.buf_size);
  • Extract individual frames from video and pipe them to StandardOutput in FFmpeg

    13 novembre 2019, par Nicke Manarin

    I’m trying to extract frames from a video using FFmpeg. But instead of letting FFmpeg write the files to disk, I’m trying to get the frames directly from StandardOutput.

    I’m not sure if it’s feasible. I’m expecting to get each frame individually as they get decoded by reading and waiting until all frames are extracted.

    With the current code, I think that I’m getting all frames at once.


    Command

    ffmpeg -i "C:\video.mp4" -r 30 -ss 00:00:10.000 -to 00:01:20.000 -hide_banner -c:v png -f image2pipe -

    Code

    var start = TimeSpan.FromMilliseconds(SelectionSlider.LowerValue);
    var end = TimeSpan.FromMilliseconds(SelectionSlider.UpperValue);

    var info = new ProcessStartInfo(UserSettings.All.FfmpegLocation)
    {
       Arguments = $" -i \"{VideoPath}\" -r {fps} -ss {start:hh\\:mm\\:ss\\.fff} " +
           "-to {end:hh\\:mm\\:ss\\.fff} -hide_banner -c:v png -f image2pipe -",
       CreateNoWindow = true,
       ErrorDialog = false,
       UseShellExecute = false,
       RedirectStandardError = true,
       RedirectStandardOutput = true
    };

    var process = new Process();
    process.StartInfo = info;
    process.Start();

    while (!process.StandardOutput.EndOfStream)
    {
       if (_cancelled)
       {
           process.Kill();
           return;
       }

       //This returns me the entire byte array, of all frames.
       var bytes = default(byte[]);
       using (var memstream = new MemoryStream())
       {
           process.StandardOutput.BaseStream.CopyTo(memstream);
           bytes = memstream.ToArray();
       }
    }

    I also tried to use process.BeginOutputReadLine() and wait for each frame in OutputDataReceived. But it returns parts of each frame, like the 10 first bytes, than other 50 bytes, it’s erratic.

    Is there any way to get the frames separately via the output stream ?