Recherche avancée

Médias (29)

Mot : - Tags -/Musique

Autres articles (67)

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

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

Sur d’autres sites (4244)

  • How to write a text in a frame using ffmpeg

    21 février 2024, par Jorge Augusto Wilchen

    I need to write a text in every frame before write in the video file, this text will be passed as a argument (std::string or char, whatever you want to best solution). For example, write "Hello World" 24px, color yellow, position 30x30.

    


    How can i do this ?

    


    This is my function that read frames to a AVPacket and write in the video file :

    


    bool VideoRecorder::record_video()
{
    if (recording) {
        AVPacket packet;

        while (recording && av_read_frame(inputFormatContext, &packet) >= 0) {
            AVStream* in_stream = inputFormatContext->streams[packet.stream_index];
            AVStream* out_stream = outputFormatContext->streams[0];

            // Adjustment of DTS and PTS to ensure increasing monoticity
            if (packet.pts != AV_NOPTS_VALUE) {
                packet.pts = av_rescale_q_rnd(packet.pts, in_stream->time_base, out_stream->time_base, AVRounding(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));
            }

            if (packet.dts != AV_NOPTS_VALUE) {
                packet.dts = av_rescale_q_rnd(packet.dts, in_stream->time_base, out_stream->time_base, AVRounding(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));
            }

            packet.duration = av_rescale_q(packet.duration, in_stream->time_base, out_stream->time_base);

            packet.stream_index = 0;

            av_interleaved_write_frame(outputFormatContext, &packet);

            av_packet_unref(&packet);
        }


        return true;
    }

    std::cerr << "Error recording video. Recording not started or already stopped." << std::endl;
    return false;
}


    


  • Creating an ffmpeg html/php form process and need ffmpeg technical feedback

    7 juin 2016, par dave

    I have decided to create an input form for ffmpeg to go with my video uploader.

    This is for my video uploader plugin for a social site software. Users have told me that they want technical options for videos so they can choose the specific options they want including thumbnail options.

    I have been reading the ffmpeg docs most of the morning as well as watching some videos and i have come up with a rough draft of my form. The videos uploaded will more than likely be non gaming, personal and hobby videos.

    The goal here is to have a form that is easy enough for the non technical user, but technical for those that want the options. So i do plan to have a checkbox which allows the non technical user to skip the technical settings. This will result in a generic ffmpeg command with default settings. If they choose to use the technical specs then it will create a more specific ffmpeg command stream.

    here is what i have so far in the draft.

    select max size options ’50MB’,’100MB’,’200MB’,’500MB’,’650MB’,’750MB’,’1GB’,’2GB’,’3GB’

    input for thumbcapture in seconds maxlength 2 size 2

    input for video in ’mpg’,’wma’,’mov’,’flv’,’mp4’,’avi’,’qt’,’wmv’,’rm’

    option for video size ’200x100’,’320x240’,’560x315’,’640x360’,’853x480’,’1280x720’ not sure if i want to offer a custom slot or not.

    my thought here is that if they do not want the tech version of the form then the codecs will be b:v copy b:a copy (if that is the smart way to do it) or just left out and let ffmpeg decide what is best.

    ===== this is the technical part of the form =======

    select for acodec options copy, mp3, mp1, mp2, dnet, 28_8, wmav2, alac, cook

    select for vcodec option copy, ffv1, ms-cram, mpeg-4, rv40, wmv, xvid, mov, qt, avchd

    select for bitrate audio 32k, 64k, 128k

    select for bitrate video 1000k, 1200k, 1500k

    select for sampling rate 22050, 44100

    input for crf(mp4 out only) size 2 maxlength 2 minval 2 maxval 49

    input for avi quantanizer (avi out only) size 2 maxlength 2 minval 2 maxval 49

    ===== end technical form =====================

    select for video out ’avi’,’mp4’,’flv’

    that is what i have so far. How does that combination on the technical side look to you ffmpeg pros ?

    Any suggestions ? :)

  • How can I get start time of rtsp-sesson via ffmpeg (C++) ? start_time_realtime always equal -9223372036854775808

    5 août 2019, par chuchuchu

    I’m trying to get a frame by rtsp and calculate its real-world timestamp. I previously used Live555 for this (presentationTime).

    As far as I understand, ffmpeg does not provide such functionality, but provides the ability to read the relative time of each frame and the start time of the stream. In my case, the frame timestamps (pts) works correctly, but the stream start time (start_time_realtime) is always -9223372036854775808.

    I’m trying to use simple example from this Q : https://stackoverflow.com/a/11054652/5355846

    Value does not change. regardless of the position in the code

    int main(int argc, char** argv) {
       // Open the initial context variables that are needed
       SwsContext *img_convert_ctx;
       AVFormatContext* format_ctx = avformat_alloc_context();
       AVCodecContext* codec_ctx = NULL;
       int video_stream_index;

       // Register everything
       av_register_all();
       avformat_network_init();

       //open RTSP
       if (avformat_open_input(&format_ctx, "path_to_rtsp_stream",
                               NULL, NULL) != 0) {
           return EXIT_FAILURE;
       }
       ...
    }
    while (av_read_frame(format_ctx, &packet) >= 0 && cnt < 1000) { //read ~ 1000 frames

           //// here!
           std::cout<< " ***** "
           << std::to_string(format_ctx->start_time_realtime)
           << " | "<start_time
           << " | "<best_effort_timestamp;

    ...
    }

    ***** -9223372036854775808 | 0 | 4120 | 40801 Frame : 103

    What am I doing wrong ?