Recherche avancée

Médias (91)

Autres articles (44)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

Sur d’autres sites (7017)

  • Saving frames as JPG with FFMPEG (Visual Studio / C++)

    10 novembre 2022, par Diego Satizabal

    I am trying to save all frames from a mp4 video in separate JPG files, I have a code that runs and actually saves something to JPG files but files are not recognized as images and nothing is showing.

    


    Below my full code, I am using Visual Studio 2022 in Windows 11 and FFMPEG 5.1. The function that saves the images is save_frame_as_jpeg which is actually an adaption from the code provided here but changing the use of avcodec_encode_video2 for avcodec_send_frame/avcodec_receive_packet as indicated in the documentation.

    


    I am obiously doing something wrong but cannot quite find it, BTW, I know that a simple command (ffmpeg -i input.mp4 -vf fps=1 vid_%d.png) will do this but I am requiring to do it by code.

    


    Any help is appreciated, thanks in advance !

    


        // FfmpegTests.cpp : This file contains the &#x27;main&#x27; function. Program execution begins and ends there.&#xA;//&#xA;#pragma warning(disable : 4996)&#xA;extern "C"&#xA;{&#xA;    #include "libavformat/avformat.h"&#xA;    #include "libavcodec/avcodec.h"&#xA;    #include "libavfilter/avfilter.h"&#xA;    #include "libavutil/opt.h"&#xA;    #include "libavutil/avutil.h"&#xA;    #include "libavutil/error.h"&#xA;    #include "libavfilter/buffersrc.h"&#xA;    #include "libavfilter/buffersink.h"&#xA;    #include "libswscale/swscale.h"&#xA;}&#xA;&#xA;#pragma comment(lib, "avcodec.lib")&#xA;#pragma comment(lib, "avformat.lib")&#xA;#pragma comment(lib, "avfilter.lib")&#xA;#pragma comment(lib, "avutil.lib")&#xA;#pragma comment(lib, "swscale.lib")&#xA;&#xA;#include <cstdio>&#xA;#include <iostream>&#xA;#include <chrono>&#xA;#include <thread>&#xA;&#xA;&#xA;static AVFormatContext* fmt_ctx;&#xA;static AVCodecContext* dec_ctx;&#xA;AVFilterGraph* filter_graph;&#xA;AVFilterContext* buffersrc_ctx;&#xA;AVFilterContext* buffersink_ctx;&#xA;static int video_stream_index = -1;&#xA;&#xA;const char* filter_descr = "scale=78:24,transpose=cclock";&#xA;static int64_t last_pts = AV_NOPTS_VALUE;&#xA;&#xA;static int open_input_file(const char* filename)&#xA;{&#xA;    const AVCodec* dec;&#xA;    int ret;&#xA;&#xA;    if ((ret = avformat_open_input(&amp;fmt_ctx, filename, NULL, NULL)) &lt; 0) {&#xA;        av_log(NULL, AV_LOG_ERROR, "Cannot open input file\n");&#xA;        return ret;&#xA;    }&#xA;&#xA;    if ((ret = avformat_find_stream_info(fmt_ctx, NULL)) &lt; 0) {&#xA;        av_log(NULL, AV_LOG_ERROR, "Cannot find stream information\n");&#xA;        return ret;&#xA;    }&#xA;&#xA;    /* select the video stream */&#xA;    ret = av_find_best_stream(fmt_ctx, AVMEDIA_TYPE_VIDEO, -1, -1, &amp;dec, 0);&#xA;    if (ret &lt; 0) {&#xA;        av_log(NULL, AV_LOG_ERROR, "Cannot find a video stream in the input file\n");&#xA;        return ret;&#xA;    }&#xA;    video_stream_index = ret;&#xA;&#xA;    /* create decoding context */&#xA;    dec_ctx = avcodec_alloc_context3(dec);&#xA;    if (!dec_ctx)&#xA;        return AVERROR(ENOMEM);&#xA;    avcodec_parameters_to_context(dec_ctx, fmt_ctx->streams[video_stream_index]->codecpar);&#xA;&#xA;    /* init the video decoder */&#xA;    if ((ret = avcodec_open2(dec_ctx, dec, NULL)) &lt; 0) {&#xA;        av_log(NULL, AV_LOG_ERROR, "Cannot open video decoder\n");&#xA;        return ret;&#xA;    }&#xA;&#xA;    return 0;&#xA;}&#xA;&#xA;static int init_filters(const char* filters_descr)&#xA;{&#xA;    char args[512];&#xA;    int ret = 0;&#xA;    const AVFilter* buffersrc = avfilter_get_by_name("buffer");&#xA;    const AVFilter* buffersink = avfilter_get_by_name("buffersink");&#xA;    AVFilterInOut* outputs = avfilter_inout_alloc();&#xA;    AVFilterInOut* inputs = avfilter_inout_alloc();&#xA;    AVRational time_base = fmt_ctx->streams[video_stream_index]->time_base;&#xA;    enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };&#xA;&#xA;    filter_graph = avfilter_graph_alloc();&#xA;    if (!outputs || !inputs || !filter_graph) {&#xA;        ret = AVERROR(ENOMEM);&#xA;        goto end;&#xA;    }&#xA;&#xA;    /* buffer video source: the decoded frames from the decoder will be inserted here. */&#xA;    snprintf(args, sizeof(args),&#xA;        "video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d",&#xA;        dec_ctx->width, dec_ctx->height, dec_ctx->pix_fmt,&#xA;        time_base.num, time_base.den,&#xA;        dec_ctx->sample_aspect_ratio.num, dec_ctx->sample_aspect_ratio.den);&#xA;&#xA;    ret = avfilter_graph_create_filter(&amp;buffersrc_ctx, buffersrc, "in",&#xA;        args, NULL, filter_graph);&#xA;    if (ret &lt; 0) {&#xA;        av_log(NULL, AV_LOG_ERROR, "Cannot create buffer source\n");&#xA;        goto end;&#xA;    }&#xA;&#xA;    /* buffer video sink: to terminate the filter chain. */&#xA;    ret = avfilter_graph_create_filter(&amp;buffersink_ctx, buffersink, "out",&#xA;        NULL, NULL, filter_graph);&#xA;    if (ret &lt; 0) {&#xA;        av_log(NULL, AV_LOG_ERROR, "Cannot create buffer sink\n");&#xA;        goto end;&#xA;    }&#xA;&#xA;    ret = av_opt_set_int_list(buffersink_ctx, "pix_fmts", pix_fmts, AV_PIX_FMT_NONE, AV_OPT_SEARCH_CHILDREN);&#xA;    if (ret &lt; 0) {&#xA;        av_log(NULL, AV_LOG_ERROR, "Cannot set output pixel format\n");&#xA;        goto end;&#xA;    }&#xA;&#xA;    outputs->name = av_strdup("in");&#xA;    outputs->filter_ctx = buffersrc_ctx;&#xA;    outputs->pad_idx = 0;&#xA;    outputs->next = NULL;&#xA;&#xA;    inputs->name = av_strdup("out");&#xA;    inputs->filter_ctx = buffersink_ctx;&#xA;    inputs->pad_idx = 0;&#xA;    inputs->next = NULL;&#xA;&#xA;    if ((ret = avfilter_graph_parse_ptr(filter_graph, filters_descr,&#xA;        &amp;inputs, &amp;outputs, NULL)) &lt; 0)&#xA;        goto end;&#xA;&#xA;    if ((ret = avfilter_graph_config(filter_graph, NULL)) &lt; 0)&#xA;        goto end;&#xA;&#xA;end:&#xA;    avfilter_inout_free(&amp;inputs);&#xA;    avfilter_inout_free(&amp;outputs);&#xA;&#xA;    return ret;&#xA;}&#xA;&#xA;static void display_frame(const AVFrame* frame, AVRational time_base)&#xA;{&#xA;    int x, y;&#xA;    uint8_t* p0, * p;&#xA;    int64_t delay;&#xA;&#xA;    if (frame->pts != AV_NOPTS_VALUE) {&#xA;        if (last_pts != AV_NOPTS_VALUE) {&#xA;            /* sleep roughly the right amount of time;&#xA;             * usleep is in microseconds, just like AV_TIME_BASE. */&#xA;            AVRational timeBaseQ;&#xA;            timeBaseQ.num = 1;&#xA;            timeBaseQ.den = AV_TIME_BASE;&#xA;&#xA;            delay = av_rescale_q(frame->pts - last_pts, time_base, timeBaseQ);&#xA;            if (delay > 0 &amp;&amp; delay &lt; 1000000)&#xA;                std::this_thread::sleep_for(std::chrono::microseconds(delay));&#xA;        }&#xA;        last_pts = frame->pts;&#xA;    }&#xA;&#xA;    /* Trivial ASCII grayscale display. */&#xA;    p0 = frame->data[0];&#xA;    puts("\033c");&#xA;    for (y = 0; y &lt; frame->height; y&#x2B;&#x2B;) {&#xA;        p = p0;&#xA;        for (x = 0; x &lt; frame->width; x&#x2B;&#x2B;)&#xA;            putchar(" .-&#x2B;#"[*(p&#x2B;&#x2B;) / 52]);&#xA;        putchar(&#x27;\n&#x27;);&#xA;        p0 &#x2B;= frame->linesize[0];&#xA;    }&#xA;    fflush(stdout);&#xA;}&#xA;&#xA;int save_frame_as_jpeg(AVCodecContext* pCodecCtx, AVFrame* pFrame, int FrameNo) {&#xA;    int ret = 0;&#xA;&#xA;    const AVCodec* jpegCodec = avcodec_find_encoder(AV_CODEC_ID_JPEG2000);&#xA;    if (!jpegCodec) {&#xA;        return -1;&#xA;    }&#xA;    AVCodecContext* jpegContext = avcodec_alloc_context3(jpegCodec);&#xA;    if (!jpegContext) {&#xA;        return -1;&#xA;    }&#xA;&#xA;    jpegContext->pix_fmt = pCodecCtx->pix_fmt;&#xA;    jpegContext->height = pFrame->height;&#xA;    jpegContext->width = pFrame->width;&#xA;    jpegContext->time_base = AVRational{ 1,10 };&#xA;&#xA;    ret = avcodec_open2(jpegContext, jpegCodec, NULL);&#xA;    if (ret &lt; 0) {&#xA;        return ret;&#xA;    }&#xA;    FILE* JPEGFile;&#xA;    char JPEGFName[256];&#xA;&#xA;    AVPacket packet;&#xA;    packet.data = NULL;&#xA;    packet.size = 0;&#xA;    av_init_packet(&amp;packet);&#xA;&#xA;    int gotFrame;&#xA;&#xA;    ret = avcodec_send_frame(jpegContext, pFrame);&#xA;    if (ret &lt; 0) {&#xA;        return ret;&#xA;    }&#xA;&#xA;    ret = avcodec_receive_packet(jpegContext, &amp;packet);&#xA;    if (ret &lt; 0) {&#xA;        return ret;&#xA;    }&#xA;&#xA;    sprintf(JPEGFName, "c:\\folder\\dvr-%06d.jpg", FrameNo);&#xA;    JPEGFile = fopen(JPEGFName, "wb");&#xA;    fwrite(packet.data, 1, packet.size, JPEGFile);&#xA;    fclose(JPEGFile);&#xA;&#xA;    av_packet_unref(&amp;packet);&#xA;    avcodec_close(jpegContext);&#xA;    return 0;&#xA;}&#xA;&#xA;int main(int argc, char** argv)&#xA;{&#xA;    AVFrame* frame;&#xA;    AVFrame* filt_frame;&#xA;    AVPacket* packet;&#xA;    int ret;&#xA;&#xA;    if (argc != 2) {&#xA;        fprintf(stderr, "Usage: %s file\n", argv[0]);&#xA;        exit(1);&#xA;    }&#xA;&#xA;    frame = av_frame_alloc();&#xA;    filt_frame = av_frame_alloc();&#xA;    packet = av_packet_alloc();&#xA;&#xA;    if (!frame || !filt_frame || !packet) {&#xA;        fprintf(stderr, "Could not allocate frame or packet\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    if ((ret = open_input_file(argv[1])) &lt; 0)&#xA;        goto end;&#xA;    if ((ret = init_filters(filter_descr)) &lt; 0)&#xA;        goto end;&#xA;&#xA;    while (true)&#xA;    {&#xA;        if ((ret = av_read_frame(fmt_ctx, packet)) &lt; 0)&#xA;            break;&#xA;&#xA;        if (packet->stream_index == video_stream_index) {&#xA;            ret = avcodec_send_packet(dec_ctx, packet);&#xA;            if (ret &lt; 0) {&#xA;                av_log(NULL, AV_LOG_ERROR, "Error while sending a packet to the decoder\n");&#xA;                break;&#xA;            }&#xA;&#xA;            while (ret >= 0)&#xA;            {&#xA;                ret = avcodec_receive_frame(dec_ctx, frame);&#xA;                if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {&#xA;                    break;&#xA;                }&#xA;                else if (ret &lt; 0) {&#xA;                    av_log(NULL, AV_LOG_ERROR, "Error while receiving a frame from the decoder\n");&#xA;                    goto end;&#xA;                }&#xA;&#xA;                frame->pts = frame->best_effort_timestamp;&#xA;&#xA;                /* push the decoded frame into the filtergraph */&#xA;                if (av_buffersrc_add_frame_flags(buffersrc_ctx, frame, AV_BUFFERSRC_FLAG_KEEP_REF) &lt; 0) {&#xA;                    av_log(NULL, AV_LOG_ERROR, "Error while feeding the filtergraph\n");&#xA;                    break;&#xA;                }&#xA;&#xA;                /* pull filtered frames from the filtergraph */&#xA;                while (1) {&#xA;                    ret = av_buffersink_get_frame(buffersink_ctx, filt_frame);&#xA;                    if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)&#xA;                        break;&#xA;                    if (ret &lt; 0)&#xA;                        goto end;&#xA;                    display_frame(filt_frame, buffersink_ctx->inputs[0]->time_base);&#xA;                    av_frame_unref(filt_frame);&#xA;                    &#xA;                    ret = save_frame_as_jpeg(dec_ctx, frame, dec_ctx->frame_number);&#xA;                    if (ret &lt; 0)&#xA;                        goto end;&#xA;                }&#xA;                av_frame_unref(frame);&#xA;            }&#xA;        }&#xA;        av_packet_unref(packet);&#xA;    }&#xA;&#xA;end:&#xA;    avfilter_graph_free(&amp;filter_graph);&#xA;    avcodec_free_context(&amp;dec_ctx);&#xA;    avformat_close_input(&amp;fmt_ctx);&#xA;    av_frame_free(&amp;frame);&#xA;    av_frame_free(&amp;filt_frame);&#xA;    av_packet_free(&amp;packet);&#xA;&#xA;    if (ret &lt; 0 &amp;&amp; ret != AVERROR_EOF) {&#xA;        char errBuf[AV_ERROR_MAX_STRING_SIZE]{0};&#xA;        int res = av_strerror(ret, errBuf, AV_ERROR_MAX_STRING_SIZE);&#xA;        fprintf(stderr, "Error:  %s\n", errBuf);&#xA;        exit(1);&#xA;    }&#xA;&#xA;    exit(0);&#xA;}&#xA;</thread></chrono></iostream></cstdio>

    &#xA;

  • FFMPEG No such filter : 'format=nv12|vaapi,hwupload'

    14 novembre 2022, par Devin Dixon

    I'm on a AWS g4ad instance and I am trying to get hardware accelleration with the GPU to work. with ffmpeg. A base line test is this :

    &#xA;

     ffmpeg -y -vaapi_device /dev/dri/renderD128 -v info -thread_queue_size 10000  -i video.mp4 -c:v h264_vaapi -vf &#x27;format=nv12|vaapi,hwupload&#x27; -crf 25 -tune zerolatency -g 120  -r 60 -pix_fmt yuv420p -preset faster -maxrate 14000k -bufsize 14000k -strict -2 -ar 44100 -b:a 128k -af aresample=async=1 -acodec aac file_out.mp4&#xA;

    &#xA;

    The above works, GPU is installed and working correctly. In my actual use case, I am grabbing the screen from an X11Grab, which works without the GPU and normal libx264 but fails when I add try to use h264_vaapi. The command I use is below :

    &#xA;

    /usr/bin/ffmpeg -vaapi_device /dev/dri/renderD128 -y -v info -f x11grab -draw_mouse 0 -r 60 -s 1920x1080 -thread_queue_size 10000 -i :0.0&#x2B;0,0 -f alsa -thread_queue_size 10000 -i plug:bsnoop -acodec aac -strict -2 -ar 44100 -b:a 128k -af aresample=async=1 -c:v h264_vaapi -vf &#x27;format=nv12|vaapi,hwupload&#x27; -preset faster -maxrate 14000k -bufsize 14000k -pix_fmt yuv420p -r 60 -crf 25 -g 120 -tune zerolatency -f flv rtmp://[to_an_rtmp source]&#xA;&#xA;And my output is this:&#xA;&#xA;2022-11-14 02:08:30.928 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: ffmpeg version 5.1.2-0ubuntu1~18.04.sav1.1 Copyright (c) 2000-2022 the FFmpeg developers&#xA;2022-11-14 02:08:30.928 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   built with gcc 7 (Ubuntu 7.5.0-6ubuntu2~18.04.sav0)&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   configuration: --prefix=/usr --extra-version=&#x27;0ubuntu1~18.04.sav1.1&#x27; --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-lcms2 --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libjxl --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-sndio --enable-pocketsphinx --enable-librsvg --enable-crystalhd --enable-libmfx --enable-libsvtav1 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   libavutil      57. 28.100 / 57. 28.100&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   libavcodec     59. 37.100 / 59. 37.100&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   libavformat    59. 27.100 / 59. 27.100&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   libavdevice    59.  7.100 / 59.  7.100&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   libavfilter     8. 44.100 /  8. 44.100&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   libswscale      6.  7.100 /  6.  7.100&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   libswresample   4.  7.100 /  4.  7.100&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   libpostproc    56.  6.100 / 56.  6.100&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [x11grab @ 0x56155ee70ac0] Stream #0: not enough frames to estimate rate; consider increasing probesize&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Input #0, x11grab, from &#x27;:0.0&#x2B;0,0&#x27;:&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Duration: N/A, start: 1668391710.975066, bitrate: 3981312 kb/s&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 3981312 kb/s, 60 fps, 1000k tbr, 1000k tbn&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Guessed Channel Layout for Input Stream #1.0 : stereo&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Input #1, alsa, from &#x27;plug:bsnoop&#x27;:&#xA;2022-11-14 02:08:31.105 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Duration: N/A, start: 1668391710.731953, bitrate: 1536 kb/s&#xA;2022-11-14 02:08:31.106 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s&#xA;2022-11-14 02:08:31.106 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Codec AVOption crf (Select the quality for constant quality mode) specified for output file #0 (rtmp://ingest.bingewave.com/live/ce98c9bb-78b0-4ee5-8a8e-af35160da695-broadcast?sign=1668996507-c340acfb5219383f660d41057a050de6) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;2022-11-14 02:08:31.106 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Codec AVOption preset (Encoding preset) specified for output file #0 (rtmp://ingest.bingewave.com/live/ce98c9bb-78b0-4ee5-8a8e-af35160da695-broadcast?sign=1668996507-c340acfb5219383f660d41057a050de6) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Codec AVOption tune (The metric that the encoder tunes for. Automatically chosen by the encoder by default) specified for output file #0 (rtmp://ingest.bingewave.com/live/ce98c9bb-78b0-4ee5-8a8e-af35160da695-broadcast?sign=1668996507-c340acfb5219383f660d41057a050de6) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Stream mapping:&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Press [q] to stop, [?] for help&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [AVFilterGraph @ 0x56155ee5d880] No such filter: &#x27;format=nv12|vaapi,hwupload&#x27;&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Error reinitializing filters!&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Failed to inject frame into filter network: Invalid argument&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Error while processing the decoded data for stream #0:0&#xA;2022-11-14 02:08:31.237 INFO: [557] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Conversion failed!&#xA;root@ip-172-31-90-180:~# &#xA;

    &#xA;

    I see that is failing because No such filter : 'format=nv12|vaapi,hwupload', which I don't get when I run the other command. What am I doing wrong here ?

    &#xA;

  • FFMPEG Without Headers is Causing Video To Be Height 0X0

    21 novembre 2022, par Devin Dixon

    I am grabbing a stream from X11 and streaming it to other sources like Node Media Server and Twitch. Except, I get audio only with no video and the resolution size says 0X0.

    &#xA;

    My ffmpeg is command is this :

    &#xA;

     /usr/bin/ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -video_size 1920x1080 -y -v info -f x11grab -draw_mouse 0 -r 60 -s 1920x1080 -thread_queue_size 14000 -i :0.0&#x2B;0,0 -f alsa -thread_queue_size 14000 -i plug:bsnoop -acodec aac -strict -2 -ar 44100 -b:a 128k -af aresample=async=1 -c:v h264_vaapi -vf format=nv12,hwupload,scale_vaapi=w=1920:h=1080 -attempt_recovery 1 -max_recovery_attempts 2 -drop_pkts_on_overflow 1 -video_size 1920x1080 -crf 19 -preset medium -maxrate 14000k -bufsize 14000k -r 60 -crf 25 -g 120 -tune zerolatency -f flv rtmp://[some_other_source]&#xA;

    &#xA;

    The ffmpeg output is as follows :

    &#xA;

    2022-11-21 13:42:45.527 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Codec AVOption crf (Select the quality for constant quality mode) specified for output file #0 (rtmp://[some_other_sorce]) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;2022-11-21 13:42:45.527 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Codec AVOption tune (The metric that the encoder tunes for. Automatically chosen by the encoder by default) specified for output file #0 (rtmp://[some_other_source]) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;2022-11-21 13:42:45.527 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Codec AVOption preset (Encoding preset) specified for output file #0 (rtmp://relay.bingewave.com/live/e3057272-271d-40d5-90d1-f9065c5dfa37-broadcast?sign=1669642928-17aa73baeaedaad786140b5b2cca9d2b) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;2022-11-21 13:42:45.527 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Codec AVOption preset (Encoding preset) specified for output file #1 (rtmp://127.0.0.1:1935/live/e3057272-271d-40d5-90d1-f9065c5dfa37-broadcast?sign=1669642928-17aa73baeaedaad786140b5b2cca9d2b) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;2022-11-21 13:42:45.527 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Codec AVOption tune (The metric that the encoder tunes for. Automatically chosen by the encoder by default) specified for output file #1 (rtmp://127.0.0.1:1935/live/[&#x27;for_reording&#x27;]) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Codec AVOption crf (Select the quality for constant quality mode) specified for output file #1 (rtmp://127.0.0.1:1935/live/e3057272-271d-40d5-90d1-f9065c5dfa37-broadcast?sign=1669642928-17aa73baeaedaad786140b5b2cca9d2b) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Stream mapping:&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #0:0 -> #1:0 (rawvideo (native) -> h264 (h264_vaapi))&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #1:0 -> #1:1 (pcm_s16le (native) -> mp3 (libmp3lame))&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Press [q] to stop, [?] for help&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [h264_vaapi @ 0x55a02df06980] No quality level set; using default (20).&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [h264_vaapi @ 0x55a02df06980] Buffering settings are ignored in CQP RC mode.&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [h264_vaapi @ 0x55a02df06980] Driver does not support some wanted packed headers (wanted 0xd, found 0).&#xA;2022-11-21 13:42:45.550 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [h264_vaapi @ 0x55a02df06980] Driver does not support packed sequence headers, but a global header is requested.&#xA;2022-11-21 13:42:45.583 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [h264_vaapi @ 0x55a02df06980] No global header will be written: this may result in a stream which is not usable for some purposes (e.g. not muxable to some containers).&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [h264_vaapi @ 0x55a02df0a700] Driver does not support some wanted packed headers (wanted 0xd, found 0).&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [h264_vaapi @ 0x55a02df0a700] Driver does not support packed sequence headers, but a global header is requested.&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [h264_vaapi @ 0x55a02df0a700] No global header will be written: this may result in a stream which is not usable for some purposes (e.g. not muxable to some containers).&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Output #0, flv, to &#x27;rtmp://relay.bingewave.com/live/[some_other_source]&#x27;:&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Metadata:&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:     encoder         : Lavf59.27.100&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #0:0: Video: h264 (High) ([7][0][0][0] / 0x0007), vaapi(tv, progressive), 1920x1080, q=2-31, 60 fps, 1k tbn&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:     Metadata:&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:       encoder         : Lavc59.37.100 h264_vaapi&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:     Metadata:&#xA;2022-11-21 13:42:45.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:       encoder         : Lavc59.37.100 aac&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: Output #1, flv, to &#x27;rtmp://127.0.0.1:1935/live/e3057272-271d-40d5-90d1-f9065c5dfa37-broadcast?sign=1669642928-17aa73baeaedaad786140b5b2cca9d2b&#x27;:&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Metadata:&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:     encoder         : Lavf59.27.100&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #1:0: Video: h264 (High) ([7][0][0][0] / 0x0007), vaapi(tv, progressive), 1920x1080, q=2-31, 15000 kb/s, 60 fps, 1k tbn&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:     Metadata:&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:       encoder         : Lavc59.37.100 h264_vaapi&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:   Stream #1:1: Audio: mp3 ([2][0][0][0] / 0x0002), 48000 Hz, stereo, s16p&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:     Metadata:&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42:       encoder         : Lavc59.37.100 libmp3lame&#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: frame=    1 fps=0.0 q=-0.0 q=-0.0 size=       7kB time=00:00:00.06 bitrate= 875.5kbits/s speed=1.31x    &#xA;2022-11-21 13:42:46.584 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: frame=   31 fps=0.0 q=-0.0 q=-0.0 size=     281kB time=00:00:00.55 bitrate=4133.2kbits/s speed=1.01x    &#xA;2022-11-21 13:42:47.325 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: frame=   60 fps= 57 q=-0.0 q=-0.0 size=     546kB time=00:00:01.18 bitrate=3774.7kbits/s speed=1.12x    &#xA;2022-11-21 13:42:47.325 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: frame=   91 fps= 58 q=-0.0 q=-0.0 size=     828kB time=00:00:01.69 bitrate=4003.3kbits/s speed=1.08x    &#xA;2022-11-21 13:42:47.325 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [flv @ 0x55a02df10e00] Failed to update header with correct duration.&#xA;2022-11-21 13:42:47.325 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [flv @ 0x55a02df10e00] Failed to update header with correct filesize.&#xA;2022-11-21 13:42:47.325 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [flv @ 0x55a02df15500] Failed to update header with correct duration.&#xA;2022-11-21 13:42:47.325 INFO: [658] LoggingUtils$Companion$OutputLogger$1.invoke$lambda-0#42: [flv @ 0x55a02df15500] Failed to update header with correct filesize.&#xA;

    &#xA;

    I've noticed there are several errors the headers going out. For VAAPI, how do I set resolution header ?

    &#xA;