Recherche avancée

Médias (1)

Mot : - Tags -/vidéo

Autres articles (27)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (5624)

  • FFmpeg : Parallel encoding with custom thread pool

    13 novembre 2017, par ZeroDefect

    One of the things I’m trying to achieve is parallel encoding via FFmpeg’s c API. This looks to work out of the box quite nicely ; however, I’ve changed the goal posts slightly :

    In an existing application, I already have a thread pool at hand. Instead of using another thread pool via FFmpeg, I would like reuse the existing thread pool in my application. Having studied the latest FFmpeg trunk docs, it very much looks possible.

    Using some FFmpeg sample code, I’ve created a sample application to demonstrate what I’m trying to achieve (see below). The sample app generates a video-only mpeg2 ts using the mp2v codec.

    The problem I’m experiencing is that the custom ’thread_execute’ or ’thread_execute2’ are never invoked. This is despite the fact that the codec appears to indicate that threading is supported. Please be aware that I have not yet plumbed in the thread pool just yet. My first goal is for it to call the custom function pointer.

    I’ve tried to get assistance on the FFmpeg mailing lists but to no avail.

    #include <iostream>
    #include <thread>
    #include
    #include
    #include
    #include <cstring>
    #include <future>

    extern "C"
    {
    #include <libavutil></libavutil>avassert.h>
    #include <libavutil></libavutil>channel_layout.h>
    #include <libavutil></libavutil>opt.h>
    #include <libavutil></libavutil>timestamp.h>
    #include <libavformat></libavformat>avformat.h>
    //#include <libswscale></libswscale>swscale.h>
    #include <libswresample></libswresample>swresample.h>
    }

    #define STREAM_DURATION   1000.0
    #define STREAM_FRAME_RATE 25 /* 25 images/s */
    #define STREAM_PIX_FMT    AV_PIX_FMT_YUV420P /* default pix_fmt */

    #define SCALE_FLAGS SWS_BICUBIC

    // a wrapper around a single output AVStream
    typedef struct OutputStream {
       AVStream *st;
       AVCodecContext *enc;

       /* pts of the next frame that will be generated */
       int64_t next_pts;
       int samples_count;

       AVFrame *frame;
       AVFrame *tmp_frame;

       float t, tincr, tincr2;

       struct SwsContext *sws_ctx;
       struct SwrContext *swr_ctx;
    } OutputStream;

    /////////////////////////////////////////////////////////////////////////////
    //  The ffmpeg variation raises compiler warnings.
    char *cb_av_ts2str(char *buf, int64_t ts)
    {
       std::memset(buf,0,AV_TS_MAX_STRING_SIZE);
       return av_ts_make_string(buf,ts);
    }

    /////////////////////////////////////////////////////////////////////////////
    //  The ffmpeg variation raises compiler warnings.
    char *cb_av_ts2timestr(char *buf, int64_t ts, AVRational *tb)
    {
       std::memset(buf,0,sizeof(AV_TS_MAX_STRING_SIZE));
       return av_ts_make_time_string(buf,ts,tb);
    }

    /////////////////////////////////////////////////////////////////////////////
    //  The ffmpeg variation raises compiler warnings.
    char *cb_av_err2str(char *errbuf, size_t errbuf_size, int errnum)
    {
       std::memset(errbuf,0,errbuf_size);
       return av_make_error_string(errbuf,errbuf_size,errnum);
    }

    int thread_execute(AVCodecContext* s, int (*func)(AVCodecContext *c2, void *arg2), void* arg, int* ret, int count, int size)
    {
       // Do it all serially for now
       std::cout &lt;&lt; "thread_execute" &lt;&lt; std::endl;

       for (int k = 0; k &lt; count; ++k)
       {
           ret[k] = func(s, arg);
       }

       return 0;
    }

    int thread_execute2(AVCodecContext* s, int (*func)(AVCodecContext* c2, void* arg2, int, int), void* arg, int* ret, int count)
    {
       // Do it all serially for now
       std::cout &lt;&lt; "thread_execute2" &lt;&lt; std::endl;

       for (int k = 0; k &lt; count; ++k)
       {
           ret[k] = func(s, arg, k, count);
       }

       return 0;
    }


    static void log_packet(const AVFormatContext *fmt_ctx, const AVPacket *pkt)
    {
       char s[AV_TS_MAX_STRING_SIZE];

       AVRational *time_base = &amp;fmt_ctx->streams[pkt->stream_index]->time_base;

       printf("pts:%s pts_time:%s dts:%s dts_time:%s duration:%s duration_time:%s stream_index:%d\n",
              cb_av_ts2str(s,pkt->pts), cb_av_ts2timestr(s,pkt->pts, time_base),
              cb_av_ts2str(s,pkt->dts), cb_av_ts2timestr(s,pkt->dts, time_base),
              cb_av_ts2str(s,pkt->duration), cb_av_ts2timestr(s,pkt->duration, time_base),
              pkt->stream_index);
    }

    static int write_frame(AVFormatContext *fmt_ctx, const AVRational *time_base, AVStream *st, AVPacket *pkt)
    {
       /* rescale output packet timestamp values from codec to stream timebase */
       av_packet_rescale_ts(pkt, *time_base, st->time_base);
       pkt->stream_index = st->index;

       /* Write the compressed frame to the media file. */
       log_packet(fmt_ctx, pkt);
       return av_interleaved_write_frame(fmt_ctx, pkt);
    }

    /* Add an output stream. */
    static void add_stream(OutputStream *ost, AVFormatContext *oc,
                          AVCodec **codec,
                          enum AVCodecID codec_id)
    {
       AVCodecContext *c;
       int i;

       /* find the encoder */
       *codec = avcodec_find_encoder(codec_id);
       if (!(*codec)) {
           fprintf(stderr, "Could not find encoder for '%s'\n",
                   avcodec_get_name(codec_id));
           exit(1);
       }

       ost->st = avformat_new_stream(oc, NULL);
       if (!ost->st) {
           fprintf(stderr, "Could not allocate stream\n");
           exit(1);
       }
       ost->st->id = oc->nb_streams-1;
       c = avcodec_alloc_context3(*codec);
       if (!c) {
           fprintf(stderr, "Could not alloc an encoding context\n");
           exit(1);
       }
       ost->enc = c;

       switch ((*codec)->type)
       {
           case AVMEDIA_TYPE_AUDIO:
               c->sample_fmt  = (*codec)->sample_fmts ?
                                (*codec)->sample_fmts[0] : AV_SAMPLE_FMT_FLTP;
               c->bit_rate    = 64000;
               c->sample_rate = 44100;
               if ((*codec)->supported_samplerates) {
                   c->sample_rate = (*codec)->supported_samplerates[0];
                   for (i = 0; (*codec)->supported_samplerates[i]; i++) {
                       if ((*codec)->supported_samplerates[i] == 44100)
                           c->sample_rate = 44100;
                   }
               }
               c->channels        = av_get_channel_layout_nb_channels(c->channel_layout);
               c->channel_layout = AV_CH_LAYOUT_STEREO;
               if ((*codec)->channel_layouts) {
                   c->channel_layout = (*codec)->channel_layouts[0];
                   for (i = 0; (*codec)->channel_layouts[i]; i++) {
                       if ((*codec)->channel_layouts[i] == AV_CH_LAYOUT_STEREO)
                           c->channel_layout = AV_CH_LAYOUT_STEREO;
                   }
               }
               c->channels        = av_get_channel_layout_nb_channels(c->channel_layout);
               ost->st->time_base = (AVRational){ 1, c->sample_rate };
               break;

           case AVMEDIA_TYPE_VIDEO:
               c->codec_id = codec_id;

               c->bit_rate = 400000;
               /* Resolution must be a multiple of two. */
               c->width    = 352;
               c->height   = 288;
               /* timebase: This is the fundamental unit of time (in seconds) in terms
                * of which frame timestamps are represented. For fixed-fps content,
                * timebase should be 1/framerate and timestamp increments should be
                * identical to 1. */
               ost->st->time_base = (AVRational){ 1, STREAM_FRAME_RATE };
               c->time_base       = ost->st->time_base;

               c->gop_size      = 12; /* emit one intra frame every twelve frames at most */
               c->pix_fmt       = STREAM_PIX_FMT;
               if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
                   /* just for testing, we also add B-frames */
                   c->max_b_frames = 2;
               }
               if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) {
                   /* Needed to avoid using macroblocks in which some coeffs overflow.
                    * This does not happen with normal video, it just happens here as
                    * the motion of the chroma plane does not match the luma plane. */
                   c->mb_decision = 2;
               }
               break;

           default:
               break;
       }

       if (c->codec->capabilities &amp; AV_CODEC_CAP_FRAME_THREADS ||
           c->codec->capabilities &amp; AV_CODEC_CAP_SLICE_THREADS)
       {
           if (c->codec->capabilities &amp; AV_CODEC_CAP_FRAME_THREADS)
           {
               c->thread_type = FF_THREAD_FRAME;
           }
           if (c->codec->capabilities &amp; AV_CODEC_CAP_SLICE_THREADS)
           {
               c->thread_type = FF_THREAD_SLICE;
           }

           c->execute = &amp;thread_execute;
           c->execute2 = &amp;thread_execute2;
           c->thread_count = 4;

           // NOTE: Testing opaque.
           c->opaque = (void*)0xff;
       }

       /* Some formats want stream headers to be separate. */
       if (oc->oformat->flags &amp; AVFMT_GLOBALHEADER)
           c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
    }

    /**************************************************************/
    /* video output */

    static AVFrame *alloc_picture(enum AVPixelFormat pix_fmt, int width, int height)
    {
       AVFrame *picture;
       int ret;

       picture = av_frame_alloc();
       if (!picture)
           return NULL;

       picture->format = pix_fmt;
       picture->width  = width;
       picture->height = height;

       /* allocate the buffers for the frame data */
       ret = av_frame_get_buffer(picture, 32);
       if (ret &lt; 0) {
           fprintf(stderr, "Could not allocate frame data.\n");
           exit(1);
       }

       return picture;
    }

    static void open_video(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, AVDictionary *opt_arg)
    {
       int ret;
       AVCodecContext *c = ost->enc;
       //AVDictionary *opt = NULL;

       //av_dict_copy(&amp;opt, opt_arg, 0);

       /* open the codec */
       ret = avcodec_open2(c, codec, NULL);
       //av_dict_free(&amp;opt);
       if (ret &lt; 0) {
           char s[AV_ERROR_MAX_STRING_SIZE];
           fprintf(stderr, "Could not open video codec: %s\n", cb_av_err2str(s,AV_ERROR_MAX_STRING_SIZE,ret));
           exit(1);
       }

       /* allocate and init a re-usable frame */
       ost->frame = alloc_picture(c->pix_fmt, c->width, c->height);
       if (!ost->frame) {
           fprintf(stderr, "Could not allocate video frame\n");
           exit(1);
       }

       /* If the output format is not YUV420P, then a temporary YUV420P
        * picture is needed too. It is then converted to the required
        * output format. */
       ost->tmp_frame = NULL;
       if (c->pix_fmt != AV_PIX_FMT_YUV420P) {
           ost->tmp_frame = alloc_picture(AV_PIX_FMT_YUV420P, c->width, c->height);
           if (!ost->tmp_frame) {
               fprintf(stderr, "Could not allocate temporary picture\n");
               exit(1);
           }
       }

       /* copy the stream parameters to the muxer */
       ret = avcodec_parameters_from_context(ost->st->codecpar, c);
       if (ret &lt; 0) {
           fprintf(stderr, "Could not copy the stream parameters\n");
           exit(1);
       }
    }

    /* Prepare a dummy image. */
    static void fill_yuv_image(AVFrame *pict, int frame_index,
                              int width, int height)
    {
       int x, y, i;

       i = frame_index;

       /* Y */
       for (y = 0; y &lt; height; y++)
           for (x = 0; x &lt; width; x++)
               pict->data[0][y * pict->linesize[0] + x] = x + y + i * 3;

       /* Cb and Cr */
       for (y = 0; y &lt; height / 2; y++) {
           for (x = 0; x &lt; width / 2; x++) {
               pict->data[1][y * pict->linesize[1] + x] = 128 + y + i * 2;
               pict->data[2][y * pict->linesize[2] + x] = 64 + x + i * 5;
           }
       }
    }

    static AVFrame *get_video_frame(OutputStream *ost)
    {
       AVCodecContext *c = ost->enc;

       /* check if we want to generate more frames */
       if (av_compare_ts(ost->next_pts, c->time_base,
                         STREAM_DURATION, (AVRational){ 1, 1 }) >= 0)
           return NULL;

       /* when we pass a frame to the encoder, it may keep a reference to it
        * internally; make sure we do not overwrite it here */
       if (av_frame_make_writable(ost->frame) &lt; 0)
           exit(1);

       if (c->pix_fmt != AV_PIX_FMT_YUV420P) {
           /* as we only generate a YUV420P picture, we must convert it
            * to the codec pixel format if needed */
           /*if (!ost->sws_ctx) {
               ost->sws_ctx = sws_getContext(c->width, c->height,
                                             AV_PIX_FMT_YUV420P,
                                             c->width, c->height,
                                             c->pix_fmt,
                                             SCALE_FLAGS, NULL, NULL, NULL);
               if (!ost->sws_ctx) {
                   fprintf(stderr,
                           "Could not initialize the conversion context\n");
                   exit(1);
               }
           }
           fill_yuv_image(ost->tmp_frame, ost->next_pts, c->width, c->height);
           sws_scale(ost->sws_ctx,
                     (const uint8_t * const *)ost->tmp_frame->data, ost->tmp_frame->linesize,
                     0, c->height, ost->frame->data, ost->frame->linesize);*/
       } else {
           fill_yuv_image(ost->frame, ost->next_pts, c->width, c->height);
       }

       ost->frame->pts = ost->next_pts++;

       return ost->frame;
    }

    /*
    * encode one video frame and send it to the muxer
    * return 1 when encoding is finished, 0 otherwise
    */
    static int write_video_frame(AVFormatContext *oc, OutputStream *ost)
    {
       int ret;
       AVCodecContext *c;
       AVFrame *frame;
       int got_packet = 0;
       AVPacket pkt = { 0 };

       c = ost->enc;

       frame = get_video_frame(ost);

       if (frame)
       {
           ret = avcodec_send_frame(ost->enc, frame);
           if (ret &lt; 0)
           {
               char s[AV_ERROR_MAX_STRING_SIZE];
               fprintf(stderr, "Error encoding video frame: %s\n", cb_av_err2str(s, AV_ERROR_MAX_STRING_SIZE, ret));
               exit(1);
           }
       }

       av_init_packet(&amp;pkt);

       ret = avcodec_receive_packet(ost->enc,&amp;pkt);
       if (ret &lt; 0)
       {
           if (ret == AVERROR(EAGAIN)) { ret = 0; }
           else
           {
               char s[AV_ERROR_MAX_STRING_SIZE];
               fprintf(stderr, "Error receiving packet: %s\n", cb_av_err2str(s,AV_ERROR_MAX_STRING_SIZE,ret));
               exit(1);
           }
       }
       else
       {
           got_packet = 1;
           ret = write_frame(oc, &amp;c->time_base, ost->st, &amp;pkt);
       }

       if (ret &lt; 0) {
           char s[AV_ERROR_MAX_STRING_SIZE];
           fprintf(stderr, "Error while writing video frame: %s\n", cb_av_err2str(s,AV_ERROR_MAX_STRING_SIZE,ret));
           exit(1);
       }

       return (frame || got_packet) ? 0 : 1;
    }

    static void close_stream(AVFormatContext *oc, OutputStream *ost)
    {
       avcodec_free_context(&amp;ost->enc);
       av_frame_free(&amp;ost->frame);
       av_frame_free(&amp;ost->tmp_frame);
       //sws_freeContext(ost->sws_ctx);
       //swr_free(&amp;ost->swr_ctx);
    }

    /**************************************************************/
    /* media file output */

    int main(int argc, char **argv)
    {
       OutputStream video_st = { 0 }, audio_st = { 0 };
       const char *filename;
       AVOutputFormat *fmt;
       AVFormatContext *oc;
       AVCodec /**audio_codec,*/ *video_codec;
       int ret;
       int have_video = 0, have_audio = 0;
       int encode_video = 0, encode_audio = 0;
       AVDictionary *opt = NULL;
       int i;

       /* Initialize libavcodec, and register all codecs and formats. */
       av_register_all();
       avformat_network_init();

       if (argc &lt; 2) {
           printf("usage: %s output_file\n"
                      "API example program to output a media file with libavformat.\n"
                      "This program generates a synthetic audio and video stream, encodes and\n"
                      "muxes them into a file named output_file.\n"
                      "The output format is automatically guessed according to the file extension.\n"
                      "Raw images can also be output by using '%%d' in the filename.\n"
                      "\n", argv[0]);
           return 1;
       }

       filename = argv[1];
       for (i = 2; i+1 &lt; argc; i+=2) {
           if (!strcmp(argv[i], "-flags") || !strcmp(argv[i], "-fflags"))
               av_dict_set(&amp;opt, argv[i]+1, argv[i+1], 0);
       }

       const char *pfilename = filename;

       /* allocate the output media context */
       avformat_alloc_output_context2(&amp;oc, NULL, "mpegts", pfilename);
       if (!oc) {
           printf("Could not deduce output format from file extension: using MPEG.\n");
           avformat_alloc_output_context2(&amp;oc, NULL, "mpeg", pfilename);
       }
       if (!oc)
           return 1;

       fmt = oc->oformat;

       /* Add the audio and video streams using the default format codecs
        * and initialize the codecs. */
       if (fmt->video_codec != AV_CODEC_ID_NONE) {
           add_stream(&amp;video_st, oc, &amp;video_codec, fmt->video_codec);
           have_video = 1;
           encode_video = 1;
       }
       /*if (fmt->audio_codec != AV_CODEC_ID_NONE) {
           add_stream(&amp;audio_st, oc, &amp;audio_codec, fmt->audio_codec);
           have_audio = 1;
           encode_audio = 1;
       }*/

       /* Now that all the parameters are set, we can open the audio and
        * video codecs and allocate the necessary encode buffers. */
       if (have_video)
           open_video(oc, video_codec, &amp;video_st, opt);

       //if (have_audio)
       //    open_audio(oc, audio_codec, &amp;audio_st, opt);

       av_dump_format(oc, 0, pfilename, 1);

       /* open the output file, if needed */
       if (!(fmt->flags &amp; AVFMT_NOFILE)) {
           ret = avio_open(&amp;oc->pb, pfilename, AVIO_FLAG_WRITE);
           if (ret &lt; 0) {
               char s[AV_ERROR_MAX_STRING_SIZE];
               fprintf(stderr, "Could not open '%s': %s\n", pfilename,
                       cb_av_err2str(s,AV_ERROR_MAX_STRING_SIZE,ret));
               return 1;
           }
       }

       /* Write the stream header, if any. */
       ret = avformat_write_header(oc, &amp;opt);
       if (ret &lt; 0) {
           char s[AV_ERROR_MAX_STRING_SIZE];
           fprintf(stderr, "Error occurred when opening output file: %s\n",
                   cb_av_err2str(s,AV_ERROR_MAX_STRING_SIZE,ret));
           return 1;
       }

       while (encode_video || encode_audio) {
           /* select the stream to encode */
           if (encode_video &amp;&amp;
               (!encode_audio || av_compare_ts(video_st.next_pts, video_st.enc->time_base,
                                               audio_st.next_pts, audio_st.enc->time_base) &lt;= 0)) {
               encode_video = !write_video_frame(oc, &amp;video_st);
           } else {
               //encode_audio = !write_audio_frame(oc, &amp;audio_st);
           }

           //std::this_thread::sleep_for(std::chrono::milliseconds(35));
       }

       /* Write the trailer, if any. The trailer must be written before you
        * close the CodecContexts open when you wrote the header; otherwise
        * av_write_trailer() may try to use memory that was freed on
        * av_codec_close(). */
       av_write_trailer(oc);

       /* Close each codec. */
       if (have_video)
           close_stream(oc, &amp;video_st);
       if (have_audio)
           close_stream(oc, &amp;audio_st);

       if (!(fmt->flags &amp; AVFMT_NOFILE))
           /* Close the output file. */
           avio_closep(&amp;oc->pb);

       /* free the stream */
       avformat_free_context(oc);

       return 0;
    }

                                                   //
    </future></cstring></thread></iostream>

    Environment :

    • Ubuntu Zesty (17.04)
    • FFmpeg version 3.2.4 (via package manager)
    • gcc 6.3 (C++)
  • FFMPEG TimeCode synchronization

    14 juin 2017, par Spadieri

    I have a problem with the length of a TS video file.

    Use Hauppauge QuadTV HD video capture card,

    ffprobe TS file

    {

    [STREAM]
    index=0
    codec_name=mpeg2video
    codec_long_name=MPEG-2 video
    profile=Main
    codec_type=video
    codec_time_base=1/25
    codec_tag_string=[2][0][0][0]
    codec_tag=0x0002
    width=720
    height=576
    coded_width=0
    coded_height=0
    has_b_frames=1
    sample_aspect_ratio=64:45
    display_aspect_ratio=16:9
    pix_fmt=yuv420p
    level=8
    color_range=tv
    color_space=unknown
    color_transfer=unknown
    color_primaries=unknown
    chroma_location=left
    field_order=tt
    timecode=N/A
    refs=1
    id=0x201
    r_frame_rate=25/1
    avg_frame_rate=25/1
    time_base=1/90000
    start_pts=4090681690
    start_time=45452.018778
    duration_ts=323618400
    duration=3595.760000
    bit_rate=N/A
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=0
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    DISPOSITION:timed_thumbnails=0
    [/STREAM]
    [STREAM]
    index=1
    codec_name=mp2
    codec_long_name=MP2 (MPEG audio layer 2)
    profile=unknown
    codec_type=audio
    codec_time_base=1/48000
    codec_tag_string=[4][0][0][0]
    codec_tag=0x0004
    sample_fmt=s16p
    sample_rate=48000
    channels=2
    channel_layout=stereo
    bits_per_sample=0
    id=0x28b
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/90000
    start_pts=4090672903
    start_time=45451.921144
    duration_ts=323585280
    duration=3595.392000
    bit_rate=192000
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=0
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    DISPOSITION:timed_thumbnails=0
    TAG:language=ita
    [/STREAM]
    [STREAM]
    index=2
    codec_name=dvb_teletext
    codec_long_name=DVB teletext
    profile=unknown
    codec_type=subtitle
    codec_tag_string=[6][0][0][0]
    codec_tag=0x0006
    width=N/A
    height=N/A
    id=0x241
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/90000
    start_pts=4090655137
    start_time=45451.723744
    duration_ts=323611200
    duration=3595.680000
    bit_rate=N/A
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=0
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    DISPOSITION:timed_thumbnails=0
    TAG:language=ita
    [/STREAM]
    [STREAM]
    index=3
    codec_name=mp2
    codec_long_name=MP2 (MPEG audio layer 2)
    profile=unknown
    codec_type=audio
    codec_time_base=1/48000
    codec_tag_string=[4][0][0][0]
    codec_tag=0x0004
    sample_fmt=s16p
    sample_rate=48000
    channels=1
    channel_layout=mono
    bits_per_sample=0
    id=0x2b7
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/90000
    start_pts=4090668157
    start_time=45451.868411
    duration_ts=323589600
    duration=3595.440000
    bit_rate=64000
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=0
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    DISPOSITION:timed_thumbnails=0
    TAG:language=Oth
    [/STREAM]
    [STREAM]
    index=4
    codec_name=mp2
    codec_long_name=MP2 (MPEG audio layer 2)
    profile=unknown
    codec_type=audio
    codec_time_base=1/48000
    codec_tag_string=[4][0][0][0]
    codec_tag=0x0004
    sample_fmt=s16p
    sample_rate=48000
    channels=2
    channel_layout=stereo
    bits_per_sample=0
    id=0x2b8
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/90000
    start_pts=4090663971
    start_time=45451.821900
    duration_ts=323585280
    duration=3595.392000
    bit_rate=192000
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=0
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    DISPOSITION:timed_thumbnails=0
    TAG:language=eng
    [/STREAM]
    [STREAM]
    index=5
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=unknown
    codec_tag_string=[5][0][0][0]
    codec_tag=0x0005
    id=0x7d2
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/90000
    start_pts=4090655137
    start_time=45451.723744
    duration_ts=323644953
    duration=3596.055033
    bit_rate=N/A
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=0
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    DISPOSITION:timed_thumbnails=0
    [/STREAM]
    [STREAM]
    index=6
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=unknown
    codec_tag_string=[11][0][0][0]
    codec_tag=0x000b
    id=0xbb9
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/90000
    start_pts=4090655137
    start_time=45451.723744
    duration_ts=323644953
    duration=3596.055033
    bit_rate=N/A
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=0
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    DISPOSITION:timed_thumbnails=0
    [/STREAM]

    }

    steps :

    1°- demux con ProjectX
    output :
    video.m2v (25 fps)
    audio.mp2

    ffmprobe video.m2v
    {


    [STREAM]
       index=0
       codec_name=mpeg2video
       codec_long_name=MPEG-2 video
       profile=Main
       codec_type=video
       codec_time_base=1/25
       codec_tag_string=[0][0][0][0]
       codec_tag=0x0000
       width=720
       height=576
       coded_width=0
       coded_height=0
       has_b_frames=1
       sample_aspect_ratio=64:45
       display_aspect_ratio=16:9
       pix_fmt=yuv420p
       level=8
       color_range=tv
       color_space=unknown
       color_transfer=unknown
       color_primaries=unknown
       chroma_location=left
       field_order=progressive
       timecode=N/A
       refs=1
       id=0x1e0
       r_frame_rate=25/1
       avg_frame_rate=25/1
       time_base=1/90000
       start_pts=48600
       start_time=0.540000
       duration_ts=322970400
       duration=3588.560000
       bit_rate=N/A
       max_bit_rate=N/A
       bits_per_raw_sample=N/A
       nb_frames=N/A
       nb_read_frames=N/A
       nb_read_packets=N/A
       DISPOSITION:default=0
       DISPOSITION:dub=0
       DISPOSITION:original=0
       DISPOSITION:comment=0
       DISPOSITION:lyrics=0
       DISPOSITION:karaoke=0
       DISPOSITION:forced=0
       DISPOSITION:hearing_impaired=0
       DISPOSITION:visual_impaired=0
       DISPOSITION:clean_effects=0
       DISPOSITION:attached_pic=0
       DISPOSITION:timed_thumbnails=0
       [/STREAM]

    }

    2° - Burn TimeCode with ffmpeg

    CL : "ffmpeg -i video.m2v -c:v mpeg2video -vf "drawtext=fontfile=courier.ttf: timecode='00\:00\:00\:00': r=25: x=10: y=10: fontcolor=white: box=1: fontsize=50: boxcolor=0x00000099" output.mpeg"

    ffmpeg output:
    {


    ffmpeg version N-85604-g207e6de Copyright (c) 2000-2017 the FFmpeg developers
       built with gcc 6.3.0 (GCC)
       configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
       libavutil      55. 61.100 / 55. 61.100
       libavcodec     57. 93.100 / 57. 93.100
       libavformat    57. 72.101 / 57. 72.101
       libavdevice    57.  7.100 / 57.  7.100
       libavfilter     6. 86.100 /  6. 86.100
       libswscale      4.  7.101 /  4.  7.101
       libswresample   2.  8.100 /  2.  8.100
       libpostproc    54.  6.100 / 54.  6.100
       Input #0, mpegvideo, from 'R2_TG2_20170607_13001.m2v':
       Duration: N/A, bitrate: N/A
       Stream #0:0: Video: mpeg2video (Main), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
       Stream mapping:
       Stream #0:0 -> #0:0 (mpeg2video (native) -> mpeg2video (native))
       Press [q] to stop, [?] for help
       [mpeg @ 00000000025eb760] VBV buffer size not set, using default size of 130KB
       If you want the mpeg file to be compliant to some specification
       Like DVD, VCD or others, make sure you set the correct buffer size
       Output #0, mpeg, to 'output.mpeg':
       Metadata:
       encoder         : Lavf57.72.101
       Stream #0:0: Video: mpeg2video (Main), yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 90k tbn, 25 tbc
       Metadata:
         encoder         : Lavc57.93.100 mpeg2video
       Side data:
         cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
       [mpeg2video @ 0000000002625020] ac-tex damaged at 1 3027.24 bitrate= 879.1kbits/s speed=  39x
       [mpeg2video @ 0000000002625020] Warning MVs not available
       [mpeg2video @ 0000000002625020] concealing 45 DC, 45 AC, 45 MV errors in I frame
       [mpeg2video @ 0000000002625020] Warning MVs not available56 bitrate= 846.8kbits/s speed=39.1x
       [mpeg2video @ 0000000002625020] concealing 1 DC, 1 AC, 1 MV errors in B frame
       frame=89714 fps=974 q=31.0 Lsize=  332412kB time=00:59:48.52 bitrate= 758.8kbits/s speed=  39x
       video:329859kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.774119%

    }

    As seen from the screenshots there are 14 frames of difference, and later rise to 35

    Can frames be damaged and ffmpeg skip them ?

    The video for the first 13 minutes is perfectly synchronized

    OriginalFrame Time

    OutputFrame Time

    3° - remux [output.mmpeg] with original audio [audio.mp2]

    CL: "ffmpeg -i output.mpeg -i originalAudio.mp2 -c:a copy -c:v copy finalOutput.mpeg"

    ffmpeg output:
    {


    ffmpeg version N-85604-g207e6de Copyright (c) 2000-2017 the FFmpeg developers
       built with gcc 6.3.0 (GCC)
       configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
       libavutil      55. 61.100 / 55. 61.100
       libavcodec     57. 93.100 / 57. 93.100
       libavformat    57. 72.101 / 57. 72.101
       libavdevice    57.  7.100 / 57.  7.100
       libavfilter     6. 86.100 /  6. 86.100
       libswscale      4.  7.101 /  4.  7.101
       libswresample   2.  8.100 /  2.  8.100
       libpostproc    54.  6.100 / 54.  6.100
       Input #0, mpeg, from 'output.mpeg':
       Duration: 00:59:48.56, start: 0.540000, bitrate: 758 kb/s
       Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
       [mp3 @ 0000000002894980] Estimating duration from bitrate, this may be inaccurate
       Input #1, mp3, from 'R2_TG2_20170607_13001.mp2':
       Duration: 00:59:48.55, start: 0.000000, bitrate: 192 kb/s
       Stream #1:0: Audio: mp2, 48000 Hz, stereo, s16p, 192 kb/s
       [mpeg @ 000000000289a880] VBV buffer size not set, using default size of 130KB
       If you want the mpeg file to be compliant to some specification
       Like DVD, VCD or others, make sure you set the correct buffer size
       Output #0, mpeg, to 'finalOutput.mpeg':
       Metadata:
       encoder         : Lavf57.72.101
       Stream #0:0: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 25 tbc
       Stream #0:1: Audio: mp2, 48000 Hz, stereo, s16p, 192 kb/s
       Stream mapping:
       Stream #0:0 -> #0:0 (copy)
       Stream #1:0 -> #0:1 (copy)
       Press [q] to stop, [?] for help
       [mpeg @ 000000000289a880] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
       frame=89714 fps=26872 q=-1.0 Lsize=  417232kB time=00:59:48.52 bitrate= 952.5kbits/s speed=1.07e+003x
       video:329859kB audio:84107kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.789151%

    }

    FinalOutput.mpeg has the same frames as output.mpeg
    I have several TransportStreams to process and everyone has a frame difference

    someone can help me to solve the problem ?

    I need FinalOutput.mpeg to be aligned frame by frame with the original and necessarily the video must impress the timecode.

    a possible solution would also be a replace "damaged" frame but I can not find out how to replace the skipped frames

    EDIT :

    i’ve tried to work from OriginalVideo.ts and extracted video with -map directly with FFMPEG but the result is the same

    CL : ffmpeg -i OriginalVideo.ts -map 0:0 -c:v copy output.h264

       ffmpeg version N-85604-g207e6de Copyright (c) 2000-2017 the FFmpeg developers
    built with gcc 6.3.0 (GCC)
    configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
    libavutil      55. 61.100 / 55. 61.100
    libavcodec     57. 93.100 / 57. 93.100
    libavformat    57. 72.101 / 57. 72.101
    libavdevice    57.  7.100 / 57.  7.100
    libavfilter     6. 86.100 /  6. 86.100
    libswscale      4.  7.101 /  4.  7.101
    libswresample   2.  8.100 /  2.  8.100
    libpostproc    54.  6.100 / 54.  6.100
    [mpeg2video @ 0000000000dd4c20] Invalid frame dimensions 0x0.
    Last message repeated 5 times
    [mp2 @ 0000000000dd7e00] Header missing
    [mp2 @ 0000000000dd8f20] Header missing
    [mpeg2video @ 0000000000dd4c20] Invalid frame dimensions 0x0.
    [mp2 @ 0000000000dd5b60] Header missing
    [mpegts @ 0000000000dd25a0] PES packet size mismatch
    Last message repeated 1 times
    [mpegts @ 0000000000dd25a0] Could not find codec parameters for stream 5 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
    Consider increasing the value for the 'analyzeduration' and 'probesize' options
    [mpegts @ 0000000000dd25a0] Could not find codec parameters for stream 6 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
    Consider increasing the value for the 'analyzeduration' and 'probesize' options
    Input #0, mpegts, from 'R2_TG2_20170607_13001.ts':
    Duration: 00:59:56.06, start: 45451.723744, bitrate: 5901 kb/s
    Program 3402
    Stream #0:0[0x201]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x28b](ita): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s
    Stream #0:2[0x241](ita): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
    Stream #0:3[0x2b7](Oth): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, mono, s16p, 64 kb/s
    Stream #0:4[0x2b8](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s
    Stream #0:5[0x7d2]: Unknown: none ([5][0][0][0] / 0x0005)
    Stream #0:6[0xbb9]: Unknown: none ([11][0][0][0] / 0x000B)
    Output #0, h264, to 'output.h264':
    Metadata:
    encoder         : Lavf57.72.101
    Stream #0:0: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], q=2-31, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Stream mapping:
    Stream #0:0 -> #0:0 (copy)
    Press [q] to stop, [?] for help
    frame=89746 fps=6083 q=-1.0 Lsize= 2131869kB time=00:59:55.64 bitrate=4857.1kbits/s speed= 244x
    video:2131869kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%

    if i try to extract video in mpeg format FFMPEG retrive me following errors :

    ffmpeg version N-85604-g207e6de Copyright (c) 2000-2017 the FFmpeg developers
         built with gcc 6.3.0 (GCC)
         configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
         libavutil      55. 61.100 / 55. 61.100
         libavcodec     57. 93.100 / 57. 93.100
         libavformat    57. 72.101 / 57. 72.101
         libavdevice    57.  7.100 / 57.  7.100
         libavfilter     6. 86.100 /  6. 86.100
         libswscale      4.  7.101 /  4.  7.101
         libswresample   2.  8.100 /  2.  8.100
         libpostproc    54.  6.100 / 54.  6.100
       [mpeg2video @ 0000000002824c20] Invalid frame dimensions 0x0.
           Last message repeated 5 times
       [mp2 @ 0000000002827e00] Header missing
       [mp2 @ 0000000002828f20] Header missing
       [mpeg2video @ 0000000002824c20] Invalid frame dimensions 0x0.
       [mp2 @ 0000000002825b60] Header missing
       [mpegts @ 00000000028225a0] PES packet size mismatch
           Last message repeated 1 times
       [mpegts @ 00000000028225a0] Could not find codec parameters for stream 5 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
       Consider increasing the value for the 'analyzeduration' and 'probesize' options
       [mpegts @ 00000000028225a0] Could not find codec parameters for stream 6 (Unknown: none ([11][0][0][0] / 0x000B)): unknown codec
       Consider increasing the value for the 'analyzeduration' and 'probesize' options
       Input #0, mpegts, from 'R2_TG2_20170607_13001.ts':
         Duration: 00:59:56.06, start: 45451.723744, bitrate: 5901 kb/s
         Program 3402
           Stream #0:0[0x201]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
           Stream #0:1[0x28b](ita): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s
           Stream #0:2[0x241](ita): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
           Stream #0:3[0x2b7](Oth): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, mono, s16p, 64 kb/s
           Stream #0:4[0x2b8](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz, stereo, s16p, 192 kb/s
           Stream #0:5[0x7d2]: Unknown: none ([5][0][0][0] / 0x0005)
           Stream #0:6[0xbb9]: Unknown: none ([11][0][0][0] / 0x000B)
       File 'output.mpeg' already exists. Overwrite ? [y/N] y
       [mpeg @ 000000000072bc80] VBV buffer size not set, using default size of 130KB
       If you want the mpeg file to be compliant to some specification
       Like DVD, VCD or others, make sure you set the correct buffer size
       Output #0, mpeg, to 'output.mpeg':
         Metadata:
           encoder         : Lavf57.72.101
           Stream #0:0: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 25 tbc
       Stream mapping:
         Stream #0:0 -> #0:0 (copy)
       Press [q] to stop, [?] for help
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=1218 size=11754=4752.0kbits/s speed= 229x
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=3247 size=11754
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=5288 size=11754
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=7329 size=11754
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=9370 size=11754
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=11411 size=11754
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=1862 size=17826
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=3891 size=17826
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=5932 size=17826
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=7973 size=17826
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=10014 size=17826
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=12055 size=17826
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=14096 size=17826
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=16137 size=17826
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=875 size=88109e=4684.9kbits/s speed= 239x
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=2904 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=4945 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=6986 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=9027 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=11068 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=13109 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=15150 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=17191 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=19232 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=21273 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=23314 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=25355 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=27396 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=29437 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=31478 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=33519 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=35560 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=37601 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=39642 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=41683 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=43724 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=45765 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=47806 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=49847 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=51888 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=53929 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=55970 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=58011 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=60052 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=62093 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=64134 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=66175 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=68216 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=70257 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=72298 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=74339 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=76380 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=78421 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=80462 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=82503 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=84544 size=88109
       [mpeg @ 000000000072bc80] buffer underflow st=0 bufi=86585 size=88109
       frame=89746 fps=5348 q=-1.0 Lsize= 2140734kB time=00:59:55.60 bitrate=4877.3kbits/s speed= 214x
       video:2131869kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.415814%
  • checkasm : add _fixed suffix to fixed_dsp tests

    1er juin 2017, par James Almer
    checkasm : add _fixed suffix to fixed_dsp tests
    

    Should prevents future conflicts with the similarly named floatdsp tests

    • [DH] tests/checkasm/fixed_dsp.c