Recherche avancée

Médias (1)

Mot : - Tags -/ogg

Autres articles (70)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

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

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

Sur d’autres sites (7078)

  • avformat/dump : Fix sign bug in reported "start" time

    13 avril 2016, par Bryan Huh
    avformat/dump : Fix sign bug in reported "start" time
    

    Previously, the bug was that if -1 < start_time < 0, the reported
    "start" time would lose the negative-sign.

    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] libavformat/dump.c
  • Ffmpeg error "avcodec_send_frame" return "invalid argument"

    17 octobre 2023, par Paulo Coutinho

    I have a problem in function avcodec_send_frame throwing error Error sending frame for encoding: Invalid argument (-22). I already search, check, recheck and nothing. It is near the ffmpeg examples. Can anyone help me ? Thanks.

    &#xA;

    This is my code :

    &#xA;

    static void callbackAddSubtitle(const Message &amp;m, const Response r)&#xA;{&#xA;    try&#xA;    {&#xA;        av_log_set_level(AV_LOG_DEBUG);&#xA;&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Adding subtitle...");&#xA;&#xA;        auto inputOpt = m.get("input");&#xA;        auto outputOpt = m.get("output");&#xA;&#xA;        if (!inputOpt.has_value() || !outputOpt.has_value())&#xA;        {&#xA;            r(std::string{"INVALID-PARAMS"});&#xA;            return;&#xA;        }&#xA;&#xA;        const std::string &amp;input = inputOpt.value();&#xA;        const std::string &amp;output = outputOpt.value();&#xA;&#xA;        // initialize input&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Initializing input video...");&#xA;&#xA;        AVFormatContext *inputFormatCtx = avformat_alloc_context();&#xA;        if (avformat_open_input(&amp;inputFormatCtx, input.c_str(), nullptr, nullptr) != 0)&#xA;        {&#xA;            spdlog::error("Failed to open input");&#xA;            r(std::string{"ERROR-OPEN-INPUT"});&#xA;            return;&#xA;        }&#xA;&#xA;        if (avformat_find_stream_info(inputFormatCtx, nullptr) &lt; 0)&#xA;        {&#xA;            spdlog::error("Failed to find stream information");&#xA;            avformat_close_input(&amp;inputFormatCtx);&#xA;            r(std::string{"ERROR-FIND-STREAM"});&#xA;            return;&#xA;        }&#xA;&#xA;        int videoStreamIndex = av_find_best_stream(inputFormatCtx, AVMEDIA_TYPE_VIDEO, -1, -1, nullptr, 0);&#xA;        if (videoStreamIndex &lt; 0)&#xA;        {&#xA;            spdlog::error("Could not find a video stream");&#xA;            r(std::string{"ERROR-FIND-VIDEO-STREAM"});&#xA;            return;&#xA;        }&#xA;&#xA;        AVRational timeBase = inputFormatCtx->streams[videoStreamIndex]->time_base;&#xA;&#xA;        AVCodecParameters *inputCodecPar = inputFormatCtx->streams[videoStreamIndex]->codecpar;&#xA;        const AVCodec *inputCodec = avcodec_find_decoder(inputCodecPar->codec_id);&#xA;        AVCodecContext *inputCodecCtx = avcodec_alloc_context3(inputCodec);&#xA;&#xA;        avcodec_parameters_to_context(inputCodecCtx, inputCodecPar);&#xA;        avcodec_open2(inputCodecCtx, inputCodec, nullptr);&#xA;&#xA;        // initialize input audio&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Initializing input audio...");&#xA;&#xA;        int audioStreamIndex = av_find_best_stream(inputFormatCtx, AVMEDIA_TYPE_AUDIO, -1, -1, nullptr, 0);&#xA;        if (audioStreamIndex &lt; 0)&#xA;        {&#xA;            spdlog::error("Could not find an audio stream");&#xA;            r(std::string{"ERROR-FIND-AUDIO-STREAM"});&#xA;            return;&#xA;        }&#xA;&#xA;        AVCodecParameters *inputAudioCodecPar = inputFormatCtx->streams[audioStreamIndex]->codecpar;&#xA;        const AVCodec *inputAudioCodec = avcodec_find_decoder(inputAudioCodecPar->codec_id);&#xA;        AVCodecContext *inputAudioCodecCtx = avcodec_alloc_context3(inputAudioCodec);&#xA;&#xA;        avcodec_parameters_to_context(inputAudioCodecCtx, inputAudioCodecPar);&#xA;        avcodec_open2(inputAudioCodecCtx, inputAudioCodec, nullptr);&#xA;&#xA;        // initialize output video&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Initializing output video...");&#xA;&#xA;        AVFormatContext *outputFormatCtx = nullptr;&#xA;        avformat_alloc_output_context2(&amp;outputFormatCtx, nullptr, nullptr, output.c_str());&#xA;        AVStream *outputStream = avformat_new_stream(outputFormatCtx, nullptr);&#xA;&#xA;        AVCodecContext *outputCodecCtx = avcodec_alloc_context3(inputCodec);&#xA;        avcodec_parameters_to_context(outputCodecCtx, inputCodecPar);&#xA;        int retOutVideo = avcodec_open2(outputCodecCtx, inputCodec, nullptr);&#xA;&#xA;        if (retOutVideo &lt; 0)&#xA;        {&#xA;            char err[AV_ERROR_MAX_STRING_SIZE];&#xA;            av_make_error_string(err, AV_ERROR_MAX_STRING_SIZE, retOutVideo);&#xA;            spdlog::error("Failed to initialize output video: {}", err);&#xA;            r(std::string{"ERROR-INIT-OUTPUT-VIDEO"});&#xA;            return;&#xA;        }&#xA;&#xA;        outputStream->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;&#xA;        outputStream->codecpar->codec_id = inputCodec->id;&#xA;        avcodec_parameters_from_context(outputStream->codecpar, outputCodecCtx);&#xA;&#xA;        if (!(outputFormatCtx->oformat->flags &amp; AVFMT_NOFILE))&#xA;        {&#xA;            avio_open(&amp;outputFormatCtx->pb, output.c_str(), AVIO_FLAG_WRITE);&#xA;        }&#xA;&#xA;        const char *pixelFormatName = getPixelFormatName(outputCodecCtx->pix_fmt);&#xA;        spdlog::debug("Pixel Format: {}", pixelFormatName);&#xA;&#xA;        // initialize output audio&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Initializing output audio...");&#xA;&#xA;        AVStream *outputAudioStream = avformat_new_stream(outputFormatCtx, nullptr);&#xA;        AVCodecContext *outputAudioCodecCtx = avcodec_alloc_context3(inputAudioCodec);&#xA;        avcodec_parameters_to_context(outputAudioCodecCtx, inputAudioCodecPar);&#xA;        int retOutAudio = avcodec_open2(outputAudioCodecCtx, inputAudioCodec, nullptr);&#xA;&#xA;        if (retOutAudio &lt; 0)&#xA;        {&#xA;            char err[AV_ERROR_MAX_STRING_SIZE];&#xA;            av_make_error_string(err, AV_ERROR_MAX_STRING_SIZE, retOutAudio);&#xA;            spdlog::error("Failed to initialize output audio: {}", err);&#xA;            r(std::string{"ERROR-INIT-OUTPUT-AUDIO"});&#xA;            return;&#xA;        }&#xA;&#xA;        outputAudioStream->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;&#xA;        outputAudioStream->codecpar->codec_id = inputAudioCodec->id;&#xA;        avcodec_parameters_from_context(outputAudioStream->codecpar, outputAudioCodecCtx);&#xA;&#xA;        // initialize filters&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Initializing filters...");&#xA;&#xA;        AVFilterGraph *filterGraph = avfilter_graph_alloc();&#xA;        if (!filterGraph)&#xA;        {&#xA;            spdlog::error("Failed to allocate filter graph");&#xA;            r(std::string{"ERROR-FILTER-GRAPH"});&#xA;            return;&#xA;        }&#xA;&#xA;        AVFilterContext *bufferSinkCtx;&#xA;        AVFilterContext *bufferSrcCtx;&#xA;&#xA;        const AVFilter *bufferSink = avfilter_get_by_name("buffersink");&#xA;        const AVFilter *bufferSrc = avfilter_get_by_name("buffer");&#xA;&#xA;        // input filter&#xA;        char filterInArgs[512];&#xA;        snprintf(filterInArgs, sizeof(filterInArgs), "video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d", inputCodecPar->width, inputCodecPar->height, inputCodecCtx->pix_fmt, timeBase.num, timeBase.den, inputCodecCtx->sample_aspect_ratio.num, inputCodecCtx->sample_aspect_ratio.den);&#xA;&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Buffer src args: {}", filterInArgs);&#xA;&#xA;        int retFilterIn = avfilter_graph_create_filter(&amp;bufferSrcCtx, bufferSrc, "in", filterInArgs, nullptr, filterGraph);&#xA;        if (retFilterIn &lt; 0)&#xA;        {&#xA;            char err[AV_ERROR_MAX_STRING_SIZE];&#xA;            av_make_error_string(err, AV_ERROR_MAX_STRING_SIZE, retFilterIn);&#xA;            spdlog::error("Failed to create bufferSrcCtx: {}", err);&#xA;            r(std::string{"ERROR-CREATE-FILTER-SRC"});&#xA;            return;&#xA;        }&#xA;&#xA;        // output filter&#xA;        int retFilterOut = avfilter_graph_create_filter(&amp;bufferSinkCtx, bufferSink, "out", nullptr, nullptr, filterGraph);&#xA;&#xA;        if (retFilterOut &lt; 0)&#xA;        {&#xA;            char err[AV_ERROR_MAX_STRING_SIZE];&#xA;            av_make_error_string(err, AV_ERROR_MAX_STRING_SIZE, retFilterOut);&#xA;            spdlog::error("Failed to create bufferSinkCtx: {}", err);&#xA;            r(std::string{"ERROR-CREATE-FILTER-SINK"});&#xA;            return;&#xA;        }&#xA;&#xA;        enum AVPixelFormat pix_fmts[] = {AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE};&#xA;        av_opt_set_int_list(bufferSinkCtx, "pix_fmts", pix_fmts, AV_PIX_FMT_NONE, AV_OPT_SEARCH_CHILDREN);&#xA;&#xA;        // add filters to graph and link them&#xA;        const char *filterSpec = "drawtext=text=&#x27;Legenda Adicionada Automaticamente Via FFMPEG e C&#x2B;&#x2B;&#x27;: fontcolor=yellow: bordercolor=black: fontfile=&#x27;/Users/paulo/Downloads/roboto/Roboto-Black.ttf&#x27;";&#xA;        const AVFilter *filter = avfilter_get_by_name("drawtext");&#xA;&#xA;        AVFilterInOut *outputs = avfilter_inout_alloc();&#xA;        AVFilterInOut *inputs = avfilter_inout_alloc();&#xA;&#xA;        outputs->name = av_strdup("in");&#xA;        outputs->filter_ctx = bufferSrcCtx;&#xA;        outputs->pad_idx = 0;&#xA;        outputs->next = nullptr;&#xA;        inputs->name = av_strdup("out");&#xA;        inputs->filter_ctx = bufferSinkCtx;&#xA;        inputs->pad_idx = 0;&#xA;        inputs->next = nullptr;&#xA;&#xA;        if (avfilter_graph_parse_ptr(filterGraph, filterSpec, &amp;inputs, &amp;outputs, nullptr) &lt; 0)&#xA;        {&#xA;            spdlog::error("Failed to parse filter graph");&#xA;            r(std::string{"ERROR-PARSE-FILTER"});&#xA;            return;&#xA;        }&#xA;&#xA;        if (avfilter_graph_config(filterGraph, nullptr) &lt; 0)&#xA;        {&#xA;            spdlog::error("Failed to configure filter graph");&#xA;            r(std::string{"ERROR-CONFIG-FILTER"});&#xA;            return;&#xA;        }&#xA;&#xA;        // header&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Writing header...");&#xA;&#xA;        if (avformat_write_header(outputFormatCtx, nullptr) &lt; 0)&#xA;        {&#xA;            spdlog::error("Error writing header");&#xA;            r(std::string{"ERROR-WRITE-HEADER"});&#xA;            return;&#xA;        }&#xA;&#xA;        // read frames and write to output&#xA;        AVPacket *packet = av_packet_alloc();&#xA;        AVFrame *frame = av_frame_alloc();&#xA;&#xA;        frame->format = inputCodecCtx->pix_fmt;&#xA;        frame->width = inputCodecCtx->width;&#xA;        frame->height = inputCodecCtx->height;&#xA;&#xA;        AVFrame *filt_frame = av_frame_alloc();&#xA;&#xA;        filt_frame->format = inputCodecCtx->pix_fmt;&#xA;        filt_frame->width = inputCodecCtx->width;&#xA;        filt_frame->height = inputCodecCtx->height;&#xA;&#xA;        while (av_read_frame(inputFormatCtx, packet) >= 0)&#xA;        {&#xA;            if (packet->stream_index == videoStreamIndex)&#xA;            {&#xA;                if (avcodec_send_packet(inputCodecCtx, packet) &lt; 0)&#xA;                {&#xA;                    spdlog::error("Error sending packet for decoding");&#xA;                    r(std::string{"ERROR-SEND-PACKET-DECODE"});&#xA;                    return;&#xA;                }&#xA;&#xA;                while (avcodec_receive_frame(inputCodecCtx, frame) == 0)&#xA;                {&#xA;                    // Envia o quadro decodificado para o gr&#xE1;fico de filtro&#xA;                    if (av_buffersrc_add_frame_flags(bufferSrcCtx, frame, AV_BUFFERSRC_FLAG_KEEP_REF) &lt; 0)&#xA;                    {&#xA;                        spdlog::error("Error while feeding the filtergraph");&#xA;                        r(std::string{"ERROR-FEED-FILTERGRAPH"});&#xA;                        return;&#xA;                    }&#xA;&#xA;                    // Recebe um quadro do gr&#xE1;fico de filtro&#xA;                    if (av_buffersink_get_frame(bufferSinkCtx, filt_frame) &lt; 0)&#xA;                    {&#xA;                        spdlog::error("Error while receiving the filtered frame");&#xA;                        r(std::string{"ERROR-RECEIVE-FILTERED-FRAME"});&#xA;                        return;&#xA;                    }&#xA;&#xA;                    // Envia o quadro decodificado para re-codifica&#xE7;&#xE3;o&#xA;                    int retSendFrame = avcodec_send_frame(outputCodecCtx, filt_frame);&#xA;                    if (retSendFrame &lt; 0)&#xA;                    {&#xA;                        char err[AV_ERROR_MAX_STRING_SIZE];&#xA;                        av_make_error_string(err, AV_ERROR_MAX_STRING_SIZE, retSendFrame);&#xA;                        spdlog::error("Error sending frame for encoding: {}", err);&#xA;                        r(std::string{"ERROR-SEND-FRAME-ENCODE"});&#xA;                        return;&#xA;                    }&#xA;&#xA;                    AVPacket *output_packet = av_packet_alloc();&#xA;                    output_packet->data = nullptr;&#xA;                    output_packet->size = 0;&#xA;&#xA;                    // Re-codifica filt_frame para um pacote&#xA;                    if (avcodec_receive_packet(outputCodecCtx, output_packet) == 0)&#xA;                    {&#xA;                        // Escreve o pacote no fluxo de sa&#xED;da&#xA;                        av_write_frame(outputFormatCtx, output_packet);&#xA;                        av_packet_unref(output_packet);&#xA;                    }&#xA;&#xA;                    av_frame_unref(filt_frame);&#xA;                }&#xA;&#xA;                // time&#xA;                packet->pts = av_rescale_q_rnd(packet->pts, inputFormatCtx->streams[videoStreamIndex]->time_base, outputFormatCtx->streams[videoStreamIndex]->time_base, (AVRounding)(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));&#xA;                packet->dts = av_rescale_q_rnd(packet->dts, inputFormatCtx->streams[videoStreamIndex]->time_base, outputFormatCtx->streams[videoStreamIndex]->time_base, (AVRounding)(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));&#xA;                packet->duration = av_rescale_q(packet->duration, inputFormatCtx->streams[videoStreamIndex]->time_base, outputFormatCtx->streams[videoStreamIndex]->time_base);&#xA;                packet->stream_index = videoStreamIndex;&#xA;&#xA;                // write packet to output video stream&#xA;                av_interleaved_write_frame(outputFormatCtx, packet);&#xA;            }&#xA;            else if (packet->stream_index == audioStreamIndex)&#xA;            {&#xA;                // rescale timestamps&#xA;                packet->pts = av_rescale_q_rnd(packet->pts, inputFormatCtx->streams[audioStreamIndex]->time_base, outputFormatCtx->streams[audioStreamIndex]->time_base, (AVRounding)(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));&#xA;                packet->dts = av_rescale_q_rnd(packet->dts, inputFormatCtx->streams[audioStreamIndex]->time_base, outputFormatCtx->streams[audioStreamIndex]->time_base, (AVRounding)(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));&#xA;                packet->duration = av_rescale_q(packet->duration, inputFormatCtx->streams[audioStreamIndex]->time_base, outputFormatCtx->streams[audioStreamIndex]->time_base);&#xA;                packet->stream_index = audioStreamIndex;&#xA;&#xA;                // write packet to output audio stream&#xA;                av_interleaved_write_frame(outputFormatCtx, packet);&#xA;            }&#xA;&#xA;            av_packet_unref(packet);&#xA;        }&#xA;&#xA;        av_packet_free(&amp;packet);&#xA;        av_frame_free(&amp;frame);&#xA;        av_frame_free(&amp;filt_frame);&#xA;&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Writing trailer...");&#xA;&#xA;        if (av_write_trailer(outputFormatCtx) &lt; 0)&#xA;        {&#xA;            spdlog::error("Error writing trailer");&#xA;            r(std::string{"ERROR-WRITE-TRAILER"});&#xA;            return;&#xA;        }&#xA;&#xA;        // cleanup&#xA;        spdlog::debug("[Mapping :: callbackAddSubtitle] Cleaning...");&#xA;&#xA;        if (!(outputFormatCtx->oformat->flags &amp; AVFMT_NOFILE))&#xA;        {&#xA;            avio_closep(&amp;outputFormatCtx->pb);&#xA;        }&#xA;&#xA;        avcodec_free_context(&amp;inputCodecCtx);&#xA;        avcodec_free_context(&amp;inputAudioCodecCtx);&#xA;        avcodec_free_context(&amp;outputCodecCtx);&#xA;        avcodec_free_context(&amp;outputAudioCodecCtx);&#xA;&#xA;        avformat_free_context(inputFormatCtx);&#xA;        avformat_free_context(outputFormatCtx);&#xA;&#xA;        r(std::string{"OK"});&#xA;    }&#xA;    catch (const std::exception &amp;e)&#xA;    {&#xA;        spdlog::error("Error: {}", e.what());&#xA;        r(std::string{"ERROR"});&#xA;    }&#xA;}&#xA;

    &#xA;

    The error is :

    &#xA;

    [2023-10-17 06:30:16.936] [debug] [Mapping :: callbackAddSubtitle] Adding subtitle...&#xA;[2023-10-17 06:30:16.936] [debug] [Mapping :: callbackAddSubtitle] Initializing input video...&#xA;[NULL @ 0x153604a60] Opening &#x27;/Users/paulo/Downloads/movie.mp4&#x27; for reading&#xA;[file @ 0x6000001fd170] Setting default whitelist &#x27;file,crypto,data&#x27;&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] ISO: File Type Major Brand: isom&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] Unknown dref type 0x206c7275 size 12&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] Processing st: 0, edit list 0 - media time: 0, duration: 2669670&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] Unknown dref type 0x206c7275 size 12&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] Processing st: 1, edit list 0 - media time: 1024, duration: 4272096&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] drop a frame at curr_cts: 0 @ 0&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] Before avformat_find_stream_info() pos: 113542488 bytes read:110788 seeks:1 nb_streams:2&#xA;[h264 @ 0x153604cd0] nal_unit_type: 7(SPS), nal_ref_idc: 3&#xA;[h264 @ 0x153604cd0] Decoding VUI&#xA;[h264 @ 0x153604cd0] nal_unit_type: 8(PPS), nal_ref_idc: 3&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] demuxer injecting skip 1024 / discard 0&#xA;[aac @ 0x1536056f0] skip 1024 / discard 0 samples due to side data&#xA;[h264 @ 0x153604cd0] nal_unit_type: 7(SPS), nal_ref_idc: 3&#xA;[h264 @ 0x153604cd0] Decoding VUI&#xA;[h264 @ 0x153604cd0] nal_unit_type: 8(PPS), nal_ref_idc: 3&#xA;[h264 @ 0x153604cd0] nal_unit_type: 6(SEI), nal_ref_idc: 0&#xA;[h264 @ 0x153604cd0] nal_unit_type: 5(IDR), nal_ref_idc: 3&#xA;[h264 @ 0x153604cd0] Format yuv420p chosen by get_format().&#xA;[h264 @ 0x153604cd0] Reinit context to 1088x1920, pix_fmt: yuv420p&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] All info found&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 0x153604a60] After avformat_find_stream_info() pos: 195211 bytes read:305951 seeks:2 frames:2&#xA;[2023-10-17 06:30:18.160] [debug] [Mapping :: callbackAddSubtitle] Initializing input audio...&#xA;[h264 @ 0x143604330] nal_unit_type: 7(SPS), nal_ref_idc: 3&#xA;[h264 @ 0x143604330] Decoding VUI&#xA;[h264 @ 0x143604330] nal_unit_type: 8(PPS), nal_ref_idc: 3&#xA;[2023-10-17 06:30:18.160] [debug] [Mapping :: callbackAddSubtitle] Initializing output video...&#xA;[h264 @ 0x143611ec0] nal_unit_type: 7(SPS), nal_ref_idc: 3&#xA;[h264 @ 0x143611ec0] Decoding VUI&#xA;[h264 @ 0x143611ec0] nal_unit_type: 8(PPS), nal_ref_idc: 3&#xA;[file @ 0x6000001f4000] Setting default whitelist &#x27;file,crypto,data&#x27;&#xA;[2023-10-17 06:30:18.167] [debug] Pixel Format: YUV420P&#xA;[2023-10-17 06:30:18.167] [debug] [Mapping :: callbackAddSubtitle] Initializing output audio...&#xA;[2023-10-17 06:30:18.167] [debug] [Mapping :: callbackAddSubtitle] Initializing filters...&#xA;[2023-10-17 06:30:18.168] [debug] [Mapping :: callbackAddSubtitle] Buffer src args: video_size=1080x1920:pix_fmt=0:time_base=1/30000:pixel_aspect=1/1&#xA;detected 10 logical cores&#xA;[in @ 0x6000004ec0b0] Setting &#x27;video_size&#x27; to value &#x27;1080x1920&#x27;&#xA;[in @ 0x6000004ec0b0] Setting &#x27;pix_fmt&#x27; to value &#x27;0&#x27;&#xA;[in @ 0x6000004ec0b0] Setting &#x27;time_base&#x27; to value &#x27;1/30000&#x27;&#xA;[in @ 0x6000004ec0b0] Setting &#x27;pixel_aspect&#x27; to value &#x27;1/1&#x27;&#xA;[in @ 0x6000004ec0b0] w:1080 h:1920 pixfmt:yuv420p tb:1/30000 fr:0/1 sar:1/1&#xA;[AVFilterGraph @ 0x6000017e8000] Setting &#x27;text&#x27; to value &#x27;Legenda Adicionada Automaticamente Via FFMPEG e C&#x2B;&#x2B;&#x27;&#xA;[AVFilterGraph @ 0x6000017e8000] Setting &#x27;fontcolor&#x27; to value &#x27;yellow&#x27;&#xA;[AVFilterGraph @ 0x6000017e8000] Setting &#x27;bordercolor&#x27; to value &#x27;black&#x27;&#xA;[AVFilterGraph @ 0x6000017e8000] Setting &#x27;fontfile&#x27; to value &#x27;/Users/paulo/Downloads/roboto/Roboto-Black.ttf&#x27;&#xA;[AVFilterGraph @ 0x6000017e8000] query_formats: 3 queried, 2 merged, 0 already done, 0 delayed&#xA;[2023-10-17 06:30:18.172] [debug] [Mapping :: callbackAddSubtitle] Writing header...&#xA;[h264 @ 0x143604330] nal_unit_type: 6(SEI), nal_ref_idc: 0&#xA;[h264 @ 0x143604330] nal_unit_type: 5(IDR), nal_ref_idc: 3&#xA;[h264 @ 0x143604330] Format yuv420p chosen by get_format().&#xA;[h264 @ 0x143604330] Reinit context to 1088x1920, pix_fmt: yuv420p&#xA;[Parsed_drawtext_0 @ 0x6000004f4160] Copying data in avfilter.&#xA;[Parsed_drawtext_0 @ 0x6000004f4160] n:0 t:0.000000 text_w:424 text_h:16 x:0 y:0&#xA;[2023-10-17 06:30:18.182] [error] Error sending frame for encoding: Invalid argument&#xA;Returned Value: ERROR-SEND-FRAME-ENCODE&#xA;

    &#xA;

  • Revert "avcodec/hevc : calculate checksum only if AV_EF_EXPLODE is set"

    4 décembre 2013, par Michael Niedermayer
    Revert "avcodec/hevc : calculate checksum only if AV_EF_EXPLODE is set"
    

    This reverts commit 758b6d39f685a510f48ff9e4c05fffa859d23c42.

    Requested-by : smarter
    "now that http://git.videolan.org/?p=ffmpeg.git;a=commit;h=97de206b44a48da726807cc3e7b9448a8112760b
    has been merged, http://git.videolan.org/?p=ffmpeg.git;a=commit;h=758b6d39f685a510f48ff9e4c05fffa859d23c42
    could be reverted, this would reduce the delta with libav
    (and it makes sense)"

    • [DH] libavcodec/hevc.c