Recherche avancée

Médias (2)

Mot : - Tags -/media

Autres articles (62)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

Sur d’autres sites (9123)

  • Make 2 videos on top of each other in a 1080×1920 scene

    6 octobre 2023, par Byte me

    I am trying to make two videos on top of each other. Right now i am scaling both to 1080x960 using ffmpeg and putting them together using vstack. Unfortunetely no success. Can anyone help me ?

    


      ffmpeg()
      .input('./placeholder.mp4').videoCodec('copy')
      .input("./scaled_YT.mp4").videoCodec('copy')
      .complexFilter([
        `[0:v]scale=1080x960[v0];[1:v]scale=1080x960[v1];[v0][v1]vstack=inputs=2[v]`
    ], ['v'])
      .toFormat('mp4')
      .on('end', () => {
          console.log('Files have been merged!');
      })
      .on('error', (err) => {
          console.error('Error:', err)
      })
      .save(outputPath);


    


    Error: Error: ffmpeg exited with code 1: &#xA;    at ChildProcess.<anonymous> (D:\Discord Bots\TEMP_TEST\done_projects\videoEditor_bot\node_modules\fluent-ffmpeg\lib\processor.js:182:22)  &#xA;    at ChildProcess.emit (node:events:513:28)&#xA;    at ChildProcess._handle.onexit (node:internal/child_process:291:12)&#xA;</anonymous>

    &#xA;

  • libswscale error Slice Parameters 0, 1080 are invalid

    3 mai 2023, par lokit khemka

    I am trying to scale a video from 1080p to 480p. For that, I have setup swscaler context as :

    &#xA;

    encoder_sc->sws_ctx = sws_getContext(1920, 1080,&#xA;                            AV_PIX_FMT_YUV420P, &#xA;                           854, 480, AV_PIX_FMT_YUV420P, SWS_BICUBIC, NULL, NULL, NULL );&#xA;

    &#xA;

    However, when I am calling the scale frame function as

    &#xA;

    sws_scale_frame(encoder->sws_ctx, input_frame, input_frame);&#xA;

    &#xA;

    However, when I do that I am getting the error Slice parameter 0, 1080 are in valid. I am very new to FFMPEG and video processing in general. I could not find any solution while searching. Any help is greatly appreciated.

    &#xA;

    EDIT : I am including the entire source code because I cannot seem to solve the issue.

    &#xA;

    &#xA;&#xA;typedef struct StreamingContext{&#xA;    AVFormatContext* avfc;&#xA;    AVCodec *video_avc;&#xA;    AVCodec *audio_avc;&#xA;    AVStream *video_avs;&#xA;    AVStream *audio_avs;&#xA;    AVCodecContext *video_avcc;&#xA;    AVCodecContext *audio_avcc;&#xA;    int video_index;&#xA;    int audio_index;&#xA;    char* filename;&#xA;    struct SwsContext *sws_ctx;&#xA;}StreamingContext;&#xA;&#xA;&#xA;typedef struct StreamingParams{&#xA;    char copy_video;&#xA;    char copy_audio;&#xA;    char *output_extension;&#xA;    char *muxer_opt_key;&#xA;    char *muxer_opt_value;&#xA;    char *video_codec;&#xA;    char *audio_codec;&#xA;    char *codec_priv_key;&#xA;    char *codec_priv_value;&#xA;}StreamingParams;&#xA;&#xA;&#xA;int prepare_video_encoder(StreamingContext *encoder_sc, AVCodecContext *decoder_ctx, AVRational input_framerate,&#xA;                          StreamingParams sp)&#xA;{&#xA;    encoder_sc->video_avs = avformat_new_stream(encoder_sc->avfc, NULL);&#xA;    encoder_sc->video_avc = avcodec_find_encoder_by_name(sp.video_codec);&#xA;    if (!encoder_sc->video_avc)&#xA;    {&#xA;        logging("Cannot find the Codec.");&#xA;        return -1;&#xA;    }&#xA;&#xA;    encoder_sc->video_avcc = avcodec_alloc_context3(encoder_sc->video_avc);&#xA;    if (!encoder_sc->video_avcc)&#xA;    {&#xA;        logging("Could not allocate memory for Codec Context.");&#xA;        return -1;&#xA;    }&#xA;&#xA;    av_opt_set(encoder_sc->video_avcc->priv_data, "preset", "fast", 0);&#xA;    if (sp.codec_priv_key &amp;&amp; sp.codec_priv_value)&#xA;        av_opt_set(encoder_sc->video_avcc->priv_data, sp.codec_priv_key, sp.codec_priv_value, 0);&#xA;&#xA;    encoder_sc->video_avcc->height = decoder_ctx->height;&#xA;    encoder_sc->video_avcc->width = decoder_ctx->width;&#xA;    encoder_sc->video_avcc->sample_aspect_ratio = decoder_ctx->sample_aspect_ratio;&#xA;&#xA;    if (encoder_sc->video_avc->pix_fmts)&#xA;        encoder_sc->video_avcc->pix_fmt = encoder_sc->video_avc->pix_fmts[0];&#xA;    else&#xA;        encoder_sc->video_avcc->pix_fmt = decoder_ctx->pix_fmt;&#xA;&#xA;    encoder_sc->video_avcc->bit_rate = 2 * 1000 * 1000;&#xA;    encoder_sc->video_avcc->rc_buffer_size = 4 * 1000 * 1000;&#xA;    encoder_sc->video_avcc->rc_max_rate = 2 * 1000 * 1000;&#xA;    encoder_sc->video_avcc->rc_min_rate = 2.5 * 1000 * 1000;&#xA;&#xA;    encoder_sc->video_avcc->time_base = av_inv_q(input_framerate);&#xA;    encoder_sc->video_avs->time_base = encoder_sc->video_avcc->time_base;&#xA;&#xA;    //Creating Scaling Context&#xA;    encoder_sc->sws_ctx = sws_getContext(1920, 1080,&#xA;                            decoder_ctx->pix_fmt, &#xA;                           854, 480, encoder_sc->video_avcc->pix_fmt, SWS_BICUBIC, NULL, NULL, NULL );&#xA;    if (!encoder_sc->sws_ctx){logging("Cannot Create Scaling Context."); return -1;}&#xA;&#xA;    if (avcodec_open2(encoder_sc->video_avcc, encoder_sc->video_avc, NULL) &lt; 0)&#xA;    {&#xA;        logging("Could not open the Codec.");&#xA;        return -1;&#xA;    }&#xA;    avcodec_parameters_from_context(encoder_sc->video_avs->codecpar, encoder_sc->video_avcc);&#xA;    return 0;&#xA;}&#xA;&#xA;&#xA;&#xA;int transcode_video(StreamingContext *decoder, StreamingContext *encoder, AVPacket *input_packet, AVFrame *input_frame, AVFrame *scaled_frame)&#xA;{&#xA;    int response = avcodec_send_packet(decoder->video_avcc, input_packet);&#xA;    if (response &lt; 0)&#xA;    {&#xA;        logging("Error while sending the Packet to Decoder: %s", av_err2str(response));&#xA;        return response;&#xA;    }&#xA;&#xA;    while (response >= 0)&#xA;    {&#xA;        response = avcodec_receive_frame(decoder->video_avcc, input_frame);&#xA;        &#xA;        if (response == AVERROR(EAGAIN) || response == AVERROR_EOF)&#xA;        {&#xA;            break;&#xA;        }&#xA;        else if (response &lt; 0)&#xA;        {&#xA;            logging("Error while receiving frame from Decoder: %s", av_err2str(response));&#xA;            return response;&#xA;        }&#xA;        if (response >= 0)&#xA;        {&#xA;            scaled_frame->format = encoder->video_avcc->pix_fmt;&#xA;            scaled_frame->width = 854;&#xA;            scaled_frame->height = 480;&#xA;            sws_scale_frame(encoder->sws_ctx, scaled_frame, input_frame);&#xA;            //ERROR is in the scaled_frame&#xA;            if (encode_video(decoder, encoder, scaled_frame)) &#xA;                return -1;&#xA;        }&#xA;&#xA;        av_frame_unref(input_frame);&#xA;    }&#xA;    return 0;&#xA;}&#xA;&#xA;

    &#xA;

  • Unable to allocate 47.5 MiB for an array with shape (1080, 1920, 3) and data type float64

    21 août 2022, par eragon

    Iam try to create a large video(longer than 3h)by CompositeVideoClip using moviepy.&#xA;The problem is it take too much ram (i have 32gb ram).It takes the whole ram (99%) by create a bunch of ffmpeg-win64-v4.2.2.exe ffmpeg-win64-v4.2.2.exe&#xA; it takes the whole ram

    &#xA;

    it create a bunch of ffmpeg-win64-v4.2.2.exe ffmpeg-win64-v4.2.2.exe

    &#xA;

    after it a while it said Unable to allocate 47.5 MiB for an array with shape (1080, 1920, 3) and data type float64.&#xA;here is my code :

    &#xA;

    def CombieVideo():&#xA;    global curentVideoLengt&#xA;    masterVideo = NULL&#xA;    for videoUrl in videoFiles:&#xA;        print(videoUrl)&#xA;        video = VideoFileClip(videoUrl).fx(vfx.fadein,1).fx(vfx.fadeout,1)&#xA;        curentVideoLengt &#x2B;= video.duration&#xA;        if curentVideoLengt >= (audioLen*60*60):&#xA;            break&#xA;        if masterVideo== NULL:&#xA;            masterVideo= video&#xA;        else:&#xA;            masterVideo = CompositeVideoClip([masterVideo,video])&#xA;            &#xA;    if curentVideoLengt &lt; (audioLen*60*60):&#xA;        videoUrl=random.choice(videoFiles)&#xA;        print(videoUrl)&#xA;        video =video(videoUrl).fx(vfx.fadein,1).fx(vfx.fadeout,1)&#xA;        curentVideoLengt= curentVideoLengt&#x2B;video.duration&#xA;        masterVideo = CompositeVideoClip([masterVideo,video])&#xA;        CombieVideo()&#xA;    else:&#xA;        masterVideo.audio = CompositeAudioClip(audios)&#xA;        masterVideo.write_videofile(&#x27;./MasterVideo/output_video.avi&#x27;, fps=30, threads=4, codec="png")&#xA;        &#xA;CombieVideo()&#xA;

    &#xA;