Recherche avancée

Médias (0)

Mot : - Tags -/metadatas

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

Autres articles (46)

  • Modifier la date de publication

    21 juin 2013, par

    Comment changer la date de publication d’un média ?
    Il faut au préalable rajouter un champ "Date de publication" dans le masque de formulaire adéquat :
    Administrer > Configuration des masques de formulaires > Sélectionner "Un média"
    Dans la rubrique "Champs à ajouter, cocher "Date de publication "
    Cliquer en bas de la page sur Enregistrer

  • Diogene : création de masques spécifiques de formulaires d’édition de contenus

    26 octobre 2010, par

    Diogene est un des plugins ? SPIP activé par défaut (extension) lors de l’initialisation de MediaSPIP.
    A quoi sert ce plugin
    Création de masques de formulaires
    Le plugin Diogène permet de créer des masques de formulaires spécifiques par secteur sur les trois objets spécifiques SPIP que sont : les articles ; les rubriques ; les sites
    Il permet ainsi de définir en fonction d’un secteur particulier, un masque de formulaire par objet, ajoutant ou enlevant ainsi des champs afin de rendre le formulaire (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (6168)

  • How can I save the h264 encoded video as a sequence of AVPacket-s to the file using libav c++ ?

    8 juillet 2023, par danvik13

    I'm trying to save video, which is generated and encoded on fly using libav (ffmpeg) functional. When I receive next non-empty AVPacket with encoded frame, I call writer.saveNextPacket() method.
Of cause, before saving, I properly init both codec and filewriter and close them in the very ending.
Here is some code :

    


    #include "utils/FileWriter.h"

#define DEBUG 1

void tp::utils::FileWriter::open(const char* path, tp::encoders::IEncoder* encoder) {
    int hr;

    debI("guessing");
    format = av_guess_format(nullptr, path, nullptr);
    if (!format){
        debI("av_guess_format");
    }

    debI("allocating output");
    hr = avformat_alloc_output_context2(&formatContext, format, nullptr, nullptr);
    if (hr < 0){
        debI("avformat_alloc_output_context2", hr);
    }

    debI("allocating stream");
    stream = avformat_new_stream(formatContext, nullptr);
    if (!stream){
        debI("avformat_new_stream");
    }
    debI("setting parameters");
    AVCodecParameters* parameters = avcodec_parameters_alloc();
    hr = avcodec_parameters_from_context(parameters, encoder->getCodecContext());
    if (hr < 0){
        debI("avcodec_parameters_from_context", hr);
    }

    stream->codecpar = parameters;

    debI("opening");
    hr = avio_open(&formatContext->pb, path, AVIO_FLAG_WRITE);
    if (hr < 0){
        debI("avio_open", hr);
    }

    debI("writing headers");
    hr = avformat_write_header(formatContext, nullptr);
    if (hr < 0){
        debI("avformat_write_header", hr);
    }
    debI("writer is set");
}

#define DEBUG 0

void tp::utils::FileWriter::saveNextPacket(AVPacket* packet) {
    int hr;

    hr = av_interleaved_write_frame(formatContext, packet);
    if (hr < 0){
        logF("av_write_frame", hr);
    }
}

void tp::utils::FileWriter::close() {
    int hr;

    hr = av_write_trailer(formatContext);
    if (hr < 0){
        logF("av_write_trailer", hr);
    }

    hr = avio_close(formatContext->pb);
    if (hr < 0){
        logF("avio_close", hr);
    }

    avformat_free_context(formatContext);
}



    


    Here is the setup part of the encoder :

    


        codec = avcodec_find_encoder(AV_CODEC_ID_H264);
    if (!codec){
        logF("avcodec_find_encoder", hr);
    }
    codecContext = avcodec_alloc_context3(codec);
    if (!codecContext){
        logF("avcodec_alloc_context3");
    }
    codecContext->width = parameters.width;
    codecContext->height = parameters.height;
    codecContext->bit_rate = parameters.bitRate;
    codecContext->time_base = (AVRational){1, parameters.fps};
    codecContext->gop_size = 0;
    codecContext->max_b_frames = 0;
    codecContext->pix_fmt = AV_PIX_FMT_YUV420P;
    if (parameters.preset == EncoderParameters::Preset::Fast){
        av_opt_set(codecContext->priv_data, "preset", "ultrafast", 0);
    }else if (parameters.preset == EncoderParameters::Preset::Slow){
        av_opt_set(codecContext->priv_data, "preset", "slow", 0);
    }

    hr = avcodec_open2(codecContext, codec, nullptr);
    if (hr < 0){
        logF("avcodec_open2", hr);
    }


    


    The problem : I open "output.mp4" file and assume that the class properly saves the header of the file. However, the file weights 262 bytes (there is no useful data such as frames) and it is corrupted for running video on any video players
ps : I've enabled libav logging, which seems to be ok, despite some messages :

    


      

    1. [file @ 0000017a74c6c540] Setting default whitelist 'file,crypto,data'
I have some concers about the appropriateness of the whitelist as no crypto is expected
    2. 


    3. [AVIOContext @ 0000017a6a249100] Statistics : 266 bytes written, 2 seeks, 3 writeouts
The actual size of the file is 262. Does it mean that there are some info leaking during saving and even the header is already broken ?
    4. 


    


    I've tried to adjust various codec settings. Even turning off any speed presets. Actually, the encoder was tested in the pair with various libav decoders and image rendering and I'm pretty sure about encoder part.
Moreover, I've written the FileWriter code three times as there are some dissimilar guides. Only the current code does not throw any warnings or errors.
Give me a hint, which part of code may be wrong or provide me with some samples of using latest ffmpeg and answer my questions, please.

    


  • ffmpeg - where to save the video I plan to cut to frames

    28 décembre 2017, par Kyle

    I have ffmpeg up and running on my computer.

    Now I am trying to cut a video into individual frames. The video is titled IMG_2299.MOV.

    I am using the following command :

    ffmpeg -i img_2299.mov $filename%12d.jpeg

    Two questions :
    1) where do I need the actual video saved for this to work ? In the same folder as the ff* executable files (/usr/loca/bin) ?
    2) And where will the images created be saved ?

    I can run the command above — but I don’t see any results.

    Thank you for any help you can offer.

  • avcodec/ac3dec : Hardcode tables to save space

    23 mai, par Andreas Rheinhardt
    avcodec/ac3dec : Hardcode tables to save space
    

    The code to initialize the ungrouped bap mantissa tables
    (bap 3 or 5) takes more bytes of .text than the tables itself ;
    they have therefore been hardcoded.

    For GCC (14, -O3, albeit in an av_cold function), the initialization
    code takes 99B each for the fixed and floating point decoders
    (the code is currently duplicated), whereas the hardcoded tables
    only take 96B. For Clang 19 it were 374B each (I don't now what
    Clang was doing there).

    Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@outlook.com>

    • [DH] libavcodec/ac3dec.c
    • [DH] libavcodec/ac3dec_data.c
    • [DH] libavcodec/ac3dec_data.h