Recherche avancée

Médias (29)

Mot : - Tags -/Musique

Autres articles (62)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

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

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

Sur d’autres sites (13080)

  • Encoding .png images with h264 to a file on disk

    19 février 2021, par xyfix

    Can somebody help me to find out why I end up with a file on disk that is only 24 kb and not readable by vlc or so, while I send valid YUV images to the codec. I have added the .h and .cpp file. Up till "avcodec_receive_packet" everything seems to be OK. The function call "avcodec_send_frame" returns 0, so that must be OK but "avcodec_receive_packet" returns -11. If I flush the encoder (currently commented) then "avcodec_receive_packet" returns 0 and I can see encoded data if I store it on disk. Also the input image to the encoder is also correct (currently commented) and checked. I'm aiming for an intra-frame encoding, so I should get the encoded frame data back, but I don't get anything back even if I send 24 images to it.

    


    .h file

    


    #ifndef MOVIECODEC_H
#define MOVIECODEC_H

#include 

extern "C"
{
    #include "Codec/include/libavcodec/avcodec.h"
    #include "Codec/include/libavdevice/avdevice.h"
    #include "Codec/include/libavformat/avformat.h"
    #include "Codec/include/libavutil/avutil.h"
    #include "Codec/include/libavutil/imgutils.h"
    #include "Codec/include/libswscale/swscale.h"
}


class MovieCodec
{
public:

    MovieCodec(const char *filename);

    ~MovieCodec();

    void encodeImage( const cv::Mat& image );

    void close();
    
private :

    void add_stream();

    void openVideoCodec();

    void write_video_frame(const cv::Mat& image);

    void createFrame( const cv::Mat& image );

private:

    static int s_frameCount;

    int m_timeVideo = 0;

    std::string m_filename;

    FILE* m_file;

    AVCodec* m_encoder = NULL;

    AVOutputFormat* m_outputFormat = NULL;

    AVFormatContext* m_formatCtx = NULL;

    AVCodecContext* m_codecCtx = NULL;

    AVStream* m_streamOut = NULL;

    AVFrame* m_frame = NULL;

    AVPacket* m_packet = NULL;

};


    


    .cpp file

    


    #ifndef MOVIECODEC_CPP
#define MOVIECODEC_CPP

#include "moviecodec.h"


#define STREAM_DURATION   5.0
#define STREAM_FRAME_RATE 24
#define STREAM_NB_FRAMES  ((int)(STREAM_DURATION * STREAM_FRAME_RATE))
#define STREAM_PIX_FMT    AV_PIX_FMT_YUV420P /* default pix_fmt */


static int sws_flags = SWS_BICUBIC;
int MovieCodec::s_frameCount = 0;

MovieCodec::MovieCodec( const char* filename ) :
    m_filename( filename ),
    m_encoder( avcodec_find_encoder( AV_CODEC_ID_H264 ))
{
    av_log_set_level(AV_LOG_VERBOSE);

    int ret(0);

    m_file = fopen( m_filename.c_str(), "wb");

    // allocate the output media context
    ret = avformat_alloc_output_context2( &m_formatCtx, m_outputFormat, NULL, m_filename.c_str());

    if (!m_formatCtx)
        return;

    m_outputFormat = m_formatCtx->oformat;

    // Add the video stream using H264 codec
    add_stream();

    // Open video codec and allocate the necessary encode buffers
    if (m_streamOut)
        openVideoCodec();

    av_dump_format( m_formatCtx, 0, m_filename.c_str(), 1);

    // Open the output media file, if needed
    if (!( m_outputFormat->flags & AVFMT_NOFILE))
    {
        ret = avio_open( &m_formatCtx->pb, m_filename.c_str(), AVIO_FLAG_WRITE);

        if (ret < 0)
        {
            char error[255];
            ret = av_strerror( ret, error, 255);
            fprintf(stderr, "Could not open '%s': %s\n", m_filename.c_str(), error);
            return ;
        }
    }
    else
    {
        return;
    }

    m_formatCtx->flush_packets = 1;

    ret = avformat_write_header( m_formatCtx, NULL );

    if (ret < 0)
    {
        char error[255];
        av_strerror(ret, error, 255);
        fprintf(stderr, "Error occurred when opening output file: %s\n", error);
        return;
    }


    if ( m_frame )
           m_frame->pts = 0;
}



MovieCodec::~MovieCodec()
{
    close();
}



void MovieCodec::encodeImage(const cv::Mat &image)
{
    // Compute video time from last added video frame
    m_timeVideo = (double)m_frame->pts) * av_q2d(m_streamOut->time_base);

    // Stop media if enough time
    if (!m_streamOut /*|| m_timeVideo >= STREAM_DURATION*/)
       return;

    // Add a video frame
    write_video_frame( image );

    // Increase frame pts according to time base
    m_frame->pts += av_rescale_q(1, m_codecCtx->time_base, m_streamOut->time_base);
}


void MovieCodec::close()
{
    int ret( 0 );

    // Write media trailer
//    if( m_formatCtx )
//        ret = av_write_trailer( m_formatCtx );

    /* flush the encoder */
    ret = avcodec_send_frame(m_codecCtx, NULL);

    /* Close each codec. */
    if ( m_streamOut )
    {
        av_free( m_frame->data[0]);
        av_free( m_frame );
    }

    if (!( m_outputFormat->flags & AVFMT_NOFILE))
        /* Close the output file. */
        ret = avio_close( m_formatCtx->pb);


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

    fflush( m_file );
}


void MovieCodec::createFrame( const cv::Mat& image )
{
    /**
     * \note allocate frame
     */
    m_frame = av_frame_alloc();
    m_frame->format = STREAM_PIX_FMT;
    m_frame->width = image.cols();
    m_frame->height = image.rows();
    m_frame->pict_type = AV_PICTURE_TYPE_I;
    int ret = av_image_alloc(m_frame->data, m_frame->linesize, m_frame->width,  m_frame->height, STREAM_PIX_FMT, 1);

    if (ret < 0)
    {
        return;
    }

    struct SwsContext* sws_ctx = sws_getContext((int)image.cols(), (int)image.rows(), AV_PIX_FMT_RGB24,
                                                (int)image.cols(), (int)image.rows(), STREAM_PIX_FMT, 0, NULL, NULL, NULL);

    const uint8_t* rgbData[1] = { (uint8_t* )image.getData() };
    int rgbLineSize[1] = { 3 * image.cols() };

    sws_scale(sws_ctx, rgbData, rgbLineSize, 0, image.rows(), m_frame->data, m_frame->linesize);
}


/* Add an output stream. */
void MovieCodec::add_stream()
{
    AVCodecID codecId = AV_CODEC_ID_H264;

    if (!( m_encoder ))
    {
        fprintf(stderr, "Could not find encoder for '%s'\n",
            avcodec_get_name(codecId));
        return;
    }

    // Get the stream for codec
    m_streamOut = avformat_new_stream(m_formatCtx, m_encoder);

    if (!m_streamOut) {
        fprintf(stderr, "Could not allocate stream\n");
        return;
    }

    m_streamOut->id = m_formatCtx->nb_streams - 1;

    m_codecCtx = avcodec_alloc_context3( m_encoder);

    m_streamOut->codecpar->codec_id = codecId;
    m_streamOut->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
    m_streamOut->codecpar->bit_rate = 400000;
    m_streamOut->codecpar->width = 800;
    m_streamOut->codecpar->height = 640;
    m_streamOut->codecpar->format = STREAM_PIX_FMT;
    m_streamOut->codecpar->codec_tag = 0x31637661;
    m_streamOut->codecpar->video_delay = 0;
    m_streamOut->time_base = { 1, STREAM_FRAME_RATE };


    avcodec_parameters_to_context( m_codecCtx, m_streamOut->codecpar);
    
    m_codecCtx->gop_size = 0; /* emit one intra frame every twelve frames at most */
    m_codecCtx->max_b_frames = 0;
    m_codecCtx->time_base = { 1, STREAM_FRAME_RATE };
    m_codecCtx->framerate = { STREAM_FRAME_RATE, 1 };
    m_codecCtx->pix_fmt = STREAM_PIX_FMT;



    if (m_streamOut->codecpar->codec_id == AV_CODEC_ID_H264)
    {
      av_opt_set( m_codecCtx, "preset", "ultrafast", 0 );
      av_opt_set( m_codecCtx, "vprofile", "baseline", 0 );
      av_opt_set( m_codecCtx, "tune", "zerolatency", 0 );
    }

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


}


void MovieCodec::openVideoCodec()
{
    int ret;

    /* open the codec */
    ret = avcodec_open2(m_codecCtx, m_encoder, NULL);

    if (ret < 0)
    {
        char error[255];
        av_strerror(ret, error, 255);
        fprintf(stderr, "Could not open video codec: %s\n", error);
    }
}



void MovieCodec::write_video_frame( const cv::Mat& image )
{
    int ret;

    createFrame( image );


    if (m_formatCtx->oformat->flags & 0x0020 )
    {
        /* Raw video case - directly store the picture in the packet */
        AVPacket pkt;
        av_init_packet(&pkt);

        pkt.flags |= AV_PKT_FLAG_KEY;
        pkt.stream_index = m_streamOut->index;
        pkt.data = m_frame->data[0];
        pkt.size = sizeof(AVPicture);

//        ret = av_interleaved_write_frame(m_formatCtx, &pkt);
        ret = av_write_frame( m_formatCtx, &pkt );
    }
    else
    {
        AVPacket pkt;
        av_init_packet(&pkt);

        /* encode the image */

//cv::Mat yuv420p( m_frame->height + m_frame->height/2, m_frame->width, CV_8UC1, m_frame->data[0]);
//cv::Mat cvmIm;
//cv::cvtColor(yuv420p,cvmIm,CV_YUV420p2BGR);
//cv::imwrite("c:\\tmp\\YUVoriginal.png", cvmIm);

        ret = avcodec_send_frame(m_codecCtx, m_frame);

        if (ret < 0)
        {
            char error[255];
            av_strerror(ret, error, 255);
            fprintf(stderr, "Error encoding video frame: %s\n", error);
            return;
        }

        /* If size is zero, it means the image was buffered. */
//        ret = avcodec_receive_packet(m_codecCtx, &pkt);

        do
        {
            ret = avcodec_receive_packet(m_codecCtx, &pkt);

            if (ret == 0)
            {
                ret = av_write_frame( m_formatCtx, &pkt );
                av_packet_unref(&pkt);

                break;
            }
//            else if ((ret < 0) && (ret != AVERROR(EAGAIN)))
//            {
//                return;
//            }
//            else if (ret == AVERROR(EAGAIN))
//            {
//                /* flush the encoder */
//                ret = avcodec_send_frame(m_codecCtx, NULL);
//
//                if (0 > ret)
//                    return;
//            }
        } while (ret == 0);

        if( !ret && pkt.size)
        {
            pkt.stream_index = m_streamOut->index;

            /* Write the compressed frame to the media file. */
//            ret = av_interleaved_write_frame(m_formatCtx, &pkt);
            ret = av_write_frame( m_formatCtx, &pkt );
        }
        else
        {
            ret = 0;
        }
    }

    if (ret != 0)
    {
        char error[255];
        av_strerror(ret, error, 255);
        fprintf(stderr, "Error while writing video frame: %s\n", error);
        return;
    }

    s_frameCount++;
}


    


  • How to reduce time while writing to output stream

    9 février 2021, par Summit

    I am streaming the render ouput of a opengl application using mpegts.The issue that i am facing is that the time taken to encode the frame is quite long.

    


    The application renders at 60 fps with frame size of 1920 X 1080 , the frame data of the application is pushed to a std::queue.

    


    This is the process for ffmpeg.

    


    I  initialize the stream like this.&#xA;&#xA;   streamerUpd.InitUPD("udp://127.0.0.1:1234", 1920, 1080, rings_);&#xA;&#xA;int StreamUPD::InitUPD(const char* url, int width, int height, std::shared_ptr<ringbuffer2> rings)&#xA;{&#xA;&#xA;    rings_ = rings;&#xA;    width_ = width;&#xA;    height_ = height;&#xA;    filename = url;&#xA;    int ret;&#xA;    av_dict_set(&amp;opt, "pkt_size", "1316", 0);&#xA;    &#xA;        &#xA;    avformat_alloc_output_context2(&amp;oc, nullptr, "mpegts", filename);&#xA;    if (!oc) {&#xA;        return 1;&#xA;    }&#xA;&#xA;    fmt = oc->oformat;&#xA;    /* Add the audio and video streams using the default format codecs&#xA;     * and initialize the codecs. */&#xA;    if (fmt->video_codec != AV_CODEC_ID_NONE) {&#xA;        add_stream(&amp;video_st, oc, &amp;video_codec, fmt->video_codec);&#xA;        have_video = 1;&#xA;        encode_video = 1;&#xA;    }&#xA;&#xA;    /* Write the stream header, if any. */&#xA;    ret = avformat_write_header(oc, &amp;opt);&#xA;    if (ret &lt; 0) {&#xA;        fprintf(stderr, "Error occurred when opening output file: %s\n",&#xA;            av_err2str(ret));&#xA;        return 1;&#xA;    }&#xA;    thr = std::thread(&amp;StreamUPD::output_result, this);&#xA;    return 0;&#xA;}&#xA;</ringbuffer2>

    &#xA;

    ////////////////////////////////////////////////////////////////////////////////////////

    &#xA;

    // Add the output stream

    &#xA;

    void StreamUPD::add_stream(OutputStream* ost, AVFormatContext* oc, AVCodec** codec, enum AVCodecID codec_id)&#xA;{&#xA;    AVCodecContext* c;&#xA;    int i;&#xA;    /* find the encoder */&#xA;    *codec = avcodec_find_encoder(codec_id);&#xA;    if (!(*codec)) {&#xA;        fprintf(stderr, "Could not find encoder for &#x27;%s&#x27;\n",&#xA;            avcodec_get_name(codec_id));&#xA;        exit(1);&#xA;    }&#xA;    ost->st = avformat_new_stream(oc, NULL);&#xA;    if (!ost->st) {&#xA;        fprintf(stderr, "Could not allocate stream\n");&#xA;        exit(1);&#xA;    }&#xA;    ost->st->id = oc->nb_streams - 1;&#xA;    c = avcodec_alloc_context3(*codec);&#xA;    if (!c) {&#xA;        fprintf(stderr, "Could not alloc an encoding context\n");&#xA;        exit(1);&#xA;    }&#xA;    ost->enc = c;&#xA;    switch ((*codec)->type) {&#xA;    case AVMEDIA_TYPE_VIDEO:&#xA;        c->codec_id = codec_id;&#xA;        c->bit_rate = 400000;&#xA;&#xA;        /* Resolution must be a multiple of two. */&#xA;        c->width = width_;&#xA;        c->height = height_;&#xA;        /* timebase: This is the fundamental unit of time (in seconds) in terms&#xA;         * of which frame timestamps are represented. For fixed-fps content,&#xA;         * timebase should be 1/framerate and timestamp increments should be&#xA;         * identical to 1. */&#xA;        ost->st->time_base = { 1, STREAM_FRAME_RATE };&#xA;        c->time_base = ost->st->time_base;&#xA;        c->gop_size = 12; /* emit one intra frame every twelve frames at most */&#xA;        c->pix_fmt = STREAM_PIX_FMT;&#xA;        &#xA;        if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) {&#xA;            /* just for testing, we also add B-frames */&#xA;            qDebug() &lt;&lt; "This is MPEG2VIDEO Frame";&#xA;            c->max_b_frames = 2;&#xA;            &#xA;        }&#xA;        if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) {&#xA;            /* Needed to avoid using macroblocks in which some coeffs overflow.&#xA;             * This does not happen with normal video, it just happens here as&#xA;             * the motion of the chroma plane does not match the luma plane. */&#xA;            c->mb_decision = 2;&#xA;        }&#xA;        break;&#xA;    default:&#xA;        break;&#xA;    }&#xA;    /* Some formats want stream headers to be separate. */&#xA;    if (oc->oformat->flags &amp; AVFMT_GLOBALHEADER)&#xA;        c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;&#xA;}&#xA;

    &#xA;

    //////////////////////////////////////////////////////////////////////////////////

    &#xA;

    // Open the video

    &#xA;

    void StreamUPD::open_video(AVFormatContext* oc, AVCodec* codec, OutputStream* ost, AVDictionary* opt_arg)&#xA;    {&#xA;        int ret;&#xA;        AVCodecContext* c = ost->enc;&#xA;        AVDictionary* opt = NULL;&#xA;        av_dict_copy(&amp;opt, opt_arg, 0);&#xA;        /* open the codec */&#xA;        ret = avcodec_open2(c, codec, &amp;opt);&#xA;        av_dict_free(&amp;opt);&#xA;        if (ret &lt; 0) {&#xA;            fprintf(stderr, "Could not open video codec: %s\n", av_err2str(ret));&#xA;            exit(1);&#xA;        }&#xA;        /* allocate and init a re-usable frame */&#xA;        ost->frame = alloc_picture(c->pix_fmt, c->width, c->height);&#xA;        if (!ost->frame) {&#xA;            fprintf(stderr, "Could not allocate video frame\n");&#xA;            exit(1);&#xA;        }&#xA;        /* If the output format is not YUV420P, then a temporary YUV420P&#xA;         * picture is needed too. It is then converted to the required&#xA;         * output format. */&#xA;        ost->tmp_frame = NULL;&#xA;        if (c->pix_fmt != AV_PIX_FMT_YUV420P) {&#xA;            ost->tmp_frame = alloc_picture(AV_PIX_FMT_YUV420P, c->width, c->height);&#xA;            if (!ost->tmp_frame) {&#xA;                fprintf(stderr, "Could not allocate temporary picture\n");&#xA;                exit(1);&#xA;            }&#xA;        }&#xA;        /* copy the stream parameters to the muxer */&#xA;        ret = avcodec_parameters_from_context(ost->st->codecpar, c);&#xA;        if (ret &lt; 0) {&#xA;            fprintf(stderr, "Could not copy the stream parameters\n");&#xA;            exit(1);&#xA;        }&#xA;    }&#xA;

    &#xA;

    Once i have setup the ffmpeg output stream this is how i am streaming the data.

    &#xA;

    This function gets the frame data from the std::queue(pixelsQueue) and sends it for encoding.

    &#xA;

    int StreamUPD::stream_video_frame()&#xA;{   &#xA;    ost = &amp;video_st;&#xA;    c = ost->enc;   &#xA;&#xA;    /* when we pass a frame to the encoder, it may keep a reference to it&#xA;     * internally; make sure we do not overwrite it here */&#xA;    if (av_frame_make_writable(ost->frame) &lt; 0)&#xA;        exit(1);&#xA;    if (!ost->sws_ctx) {&#xA;        ost->sws_ctx = sws_getContext(c->width, c->height,&#xA;            AV_PIX_FMT_RGB24,&#xA;            c->width, c->height,&#xA;            c->pix_fmt,&#xA;            SWS_FAST_BILINEAR, NULL, NULL, NULL);&#xA;        if (!ost->sws_ctx) {&#xA;            fprintf(stderr,&#xA;                "Could not initialize the conversion context\n");&#xA;            exit(1);&#xA;        }&#xA;    }&#xA;    finished_ = true;&#xA;&#xA;    if (pixelsQueue.size() > 0) {       &#xA;        if (pixelsQueue.pop(pixels)) {&#xA;            fill_yuv_image(ost->sws_ctx, frame_data->pixels_.get(), ost->frame, c->width, c->height);&#xA;            ost->frame->pts = ost->next_pts&#x2B;&#x2B;;&#xA;            return write_frame(oc, ost->enc, ost->st, ost->frame);&#xA;        }&#xA;    }&#xA;    return 1;&#xA;}&#xA;

    &#xA;

    Writing the data to the output stream.

    &#xA;

    The function avcodec_receive_packet is the one that takes lot of time.

    &#xA;

    int StreamUPD::write_frame(AVFormatContext* fmt_ctx, AVCodecContext* c,&#xA;    AVStream* st, AVFrame* frame)&#xA;{&#xA;    int ret;&#xA;    // send the frame to the encoder&#xA;    AVPacket pkt = { 0 };&#xA;    ret = avcodec_send_frame(c, frame);&#xA;    ret = avcodec_receive_packet(c, &amp;pkt);&#xA;    if (ret &lt; 0) {&#xA;        fprintf(stderr, "Error sending a frame to the encoder: %s\n",&#xA;            av_err2str(ret));&#xA;        exit(1);&#xA;    }&#xA;    &#xA;    while (ret >= 0) {&#xA;        AVPacket pkt = { 0 };&#xA;        ret = avcodec_receive_packet(c, &amp;pkt);  // This is the function that takes lot of time&#xA;        if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)&#xA;            break;&#xA;        else if (ret &lt; 0) {&#xA;            fprintf(stderr, "Error encoding a frame: %s\n", av_err2str(ret));&#xA;            exit(1);&#xA;        }&#xA;        // rescale output packet timestamp values from codec to stream timebase &#xA;        av_packet_rescale_ts(&amp;pkt, c->time_base, st->time_base);&#xA;        pkt.stream_index = st->index;&#xA;        // Write the compressed frame to the media file. &#xA;        ret = av_interleaved_write_frame(fmt_ctx, &amp;pkt);&#xA;        av_packet_unref(&amp;pkt);&#xA;        if (ret &lt; 0) {&#xA;            fprintf(stderr, "Error while writing output packet: %s\n", av_err2str(ret));&#xA;            exit(1);&#xA;        }&#xA;    }&#xA;    return ret == AVERROR_EOF ? 1 : 0;&#xA;}&#xA;

    &#xA;

    How can i reduce the outputting time while writing the frames to the stream ?

    &#xA;

    Currently i push more frames in the buffer and the outputting speed is less so the buffer starts to run out of memory in some time.

    &#xA;

  • ffmpeg aresample has no effect while it works in ffplay

    11 novembre 2020, par Lemon Sky

    I have a .ts file which is missing frames 20 seconds into the file. I'd like to fill the missing parts with silence. This works using the following command with ffplay :

    &#xA;

    ffplay -i http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts -af aresample=async=1

    &#xA;

    The same should work with ffmpeg but no silence is injected. Instead, the audio just continues playing. Example :

    &#xA;

    ffmpeg -i http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts -af aresample=async=1 -f wav -acodec pcm_s16le -ac 2 - | ffplay -i -

    &#xA;

    What am I doing wrong ?

    &#xA;

    Log :

    &#xA;

    >ffmpeg -y -nostats -loglevel trace -i http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts -af aresample=async=1 -f wav -acodec pcm_s16le -ac 2 out.wav&#xA;ffmpeg version 4.3.1-2020-11-08-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers&#xA;  built with gcc 10.2.0 (Rev3, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      56. 51.100 / 56. 51.100&#xA;  libavcodec     58. 91.100 / 58. 91.100&#xA;  libavformat    58. 45.100 / 58. 45.100&#xA;  libavdevice    58. 10.100 / 58. 10.100&#xA;  libavfilter     7. 85.100 /  7. 85.100&#xA;  libswscale      5.  7.100 /  5.  7.100&#xA;  libswresample   3.  7.100 /  3.  7.100&#xA;  libpostproc    55.  7.100 / 55.  7.100&#xA;Splitting the commandline.&#xA;Reading option &#x27;-y&#x27; ... matched as option &#x27;y&#x27; (overwrite output files) with argument &#x27;1&#x27;.&#xA;Reading option &#x27;-nostats&#x27; ... matched as option &#x27;stats&#x27; (print progress report during encoding) with argument 0.&#xA;Reading option &#x27;-loglevel&#x27; ... matched as option &#x27;loglevel&#x27; (set logging level) with argument &#x27;trace&#x27;.&#xA;Reading option &#x27;-i&#x27; ... matched as input url with argument &#x27;http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts&#x27;.&#xA;Reading option &#x27;-af&#x27; ... matched as option &#x27;af&#x27; (set audio filters) with argument &#x27;aresample=async=1&#x27;.&#xA;Reading option &#x27;-f&#x27; ... matched as option &#x27;f&#x27; (force format) with argument &#x27;wav&#x27;.&#xA;Reading option &#x27;-acodec&#x27; ... matched as option &#x27;acodec&#x27; (force audio codec (&#x27;copy&#x27; to copy stream)) with argument &#x27;pcm_s16le&#x27;.&#xA;Reading option &#x27;-ac&#x27; ... matched as option &#x27;ac&#x27; (set number of audio channels) with argument &#x27;2&#x27;.&#xA;Reading option &#x27;out.wav&#x27; ... matched as output url.&#xA;Finished splitting the commandline.&#xA;Parsing a group of options: global .&#xA;Applying option y (overwrite output files) with argument 1.&#xA;Applying option nostats (print progress report during encoding) with argument 0.&#xA;Applying option loglevel (set logging level) with argument trace.&#xA;Successfully parsed a group of options.&#xA;Parsing a group of options: input url http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts.&#xA;Successfully parsed a group of options.&#xA;Opening an input file: http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts.&#xA;[NULL @ 000001d0e7bbd200] Opening &#x27;http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts&#x27; for reading&#xA;[http @ 000001d0e7bbe2c0] Setting default whitelist &#x27;http,https,tls,rtp,tcp,udp,crypto,httpproxy,data&#x27;&#xA;[tcp @ 000001d0e7bc0d00] Original list of addresses:&#xA;[tcp @ 000001d0e7bc0d00] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7bc0d00] Interleaved list of addresses:&#xA;[tcp @ 000001d0e7bc0d00] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7bc0d00] Starting connection attempt to 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7bc0d00] Successfully connected to 144.2.127.86 port 80&#xA;[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1&#xA;User-Agent: Lavf/58.45.100&#xA;Accept: */*&#xA;Range: bytes=0-&#xA;Connection: close&#xA;Host: tyberis.com&#xA;Icy-MetaData: 1&#xA;&#xA;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;HTTP/1.1 206 Partial Content&#x27;&#xA;[http @ 000001d0e7bbe2c0] http_code=206&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Type: video/vnd.dlna.mpeg-tts&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Accept-Ranges: bytes&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;ETag: "7c6a9e6895b7d61:0"&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Server: Microsoft-IIS/10.0&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Origin: *&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Credentials: true&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Date: Wed, 11 Nov 2020 15:52:32 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Connection: close&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Length: 6531496&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Range: bytes 0-6531495/6531496&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;&#x27;&#xA;Probing mpegts score:50 size:2048&#xA;[mpegts @ 000001d0e7bbd200] Format mpegts probed with size=2048 and score=50&#xA;[mpegts @ 000001d0e7bbd200] Probe: 7648, score: 41, dvhs_score: -2, fec_score: -2&#xA;[mpegts @ 000001d0e7bbd200] Filter: pid=0x11 type=1&#xA;[mpegts @ 000001d0e7bbd200] Filter: pid=0x0 type=1&#xA;[mpegts @ 000001d0e7bbd200] Filter: pid=0x12 type=1&#xA;[mpegts @ 000001d0e7bbd200] SDT:&#xA;[mpegts @ 000001d0e7bbd200] tag: 0x48 len=18&#xA;[mpegts @ 000001d0e7bbd200] new_program: id=0x0001&#xA;[mpegts @ 000001d0e7bbd200] PAT:&#xA;[mpegts @ 000001d0e7bbd200] sid=0x1 pid=0x1000&#xA;[mpegts @ 000001d0e7bbd200] new_program: id=0x0001&#xA;[mpegts @ 000001d0e7bbd200] Filter: pid=0x1000 type=1&#xA;[mpegts @ 000001d0e7bbd200] PMT: len 21&#xA;[mpegts @ 000001d0e7bbd200] sid=0x1 sec_num=0/0 version=0 tid=2&#xA;[mpegts @ 000001d0e7bbd200] pcr_pid=0x100&#xA;[mpegts @ 000001d0e7bbd200] Filter: pid=0x100 type=0&#xA;[mpegts @ 000001d0e7bbd200] stream=0 stream_type=f pid=100 prog_reg_desc=&#xA;[mpegts @ 000001d0e7bbd200] tuning done&#xA;[mpegts @ 000001d0e7bbd200] Before avformat_find_stream_info() pos: 0 bytes read:7648 seeks:0 nb_streams:1&#xA;[mpegts @ 000001d0e7bbd200] Skipping after seek&#xA;[mpegts @ 000001d0e7bbd200] SDT:&#xA;[mpegts @ 000001d0e7bbd200] tag: 0x48 len=18&#xA;[mpegts @ 000001d0e7bbd200] new_program: id=0x0001&#xA;[mpegts @ 000001d0e7bbd200] PAT:&#xA;[mpegts @ 000001d0e7bbd200] sid=0x1 pid=0x1000&#xA;[mpegts @ 000001d0e7bbd200] new_program: id=0x0001&#xA;[mpegts @ 000001d0e7bbd200] PMT: len 21&#xA;[mpegts @ 000001d0e7bbd200] sid=0x1 sec_num=0/0 version=0 tid=2&#xA;[mpegts @ 000001d0e7bbd200] pcr_pid=0x100&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[mpegts @ 000001d0e7bbd200] probing stream 0 pp:2500&#xA;Probing aac score:51 size:2640&#xA;Probing flac score:13 size:2640&#xA;[mpegts @ 000001d0e7bbd200] Probe with size=2640, packets=1 detected aac with score=51&#xA;[mpegts @ 000001d0e7bbd200] probed stream 0&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;    Last message repeated 11 times&#xA;[mpegts @ 000001d0e7bbd200] max_analyze_duration 5000000 reached at 5014800 microseconds st:0&#xA;[tcp @ 000001d0e7c31480] Original list of addresses:&#xA;[tcp @ 000001d0e7c31480] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31480] Interleaved list of addresses:&#xA;[tcp @ 000001d0e7c31480] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31480] Starting connection attempt to 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31480] Successfully connected to 144.2.127.86 port 80&#xA;[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1&#xA;User-Agent: Lavf/58.45.100&#xA;Accept: */*&#xA;Range: bytes=6281496-&#xA;Connection: close&#xA;Host: tyberis.com&#xA;Icy-MetaData: 1&#xA;&#xA;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;HTTP/1.1 206 Partial Content&#x27;&#xA;[http @ 000001d0e7bbe2c0] http_code=206&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Type: video/vnd.dlna.mpeg-tts&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Accept-Ranges: bytes&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;ETag: "7c6a9e6895b7d61:0"&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Server: Microsoft-IIS/10.0&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Origin: *&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Credentials: true&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Date: Wed, 11 Nov 2020 15:52:32 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Connection: close&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Length: 250000&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Range: bytes 6281496-6531495/6531496&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;&#x27;&#xA;[mpegts @ 000001d0e7bbd200] Skipping after seek&#xA;[mpegts @ 000001d0e7bbd200] Probe: 763, score: 5, dvhs_score: 1, fec_score: 1&#xA;[mpegts @ 000001d0e7bbd200] Probe: 8192, score: 44, dvhs_score: -3, fec_score: -3&#xA;[tcp @ 000001d0e7c31580] Original list of addresses:&#xA;[tcp @ 000001d0e7c31580] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31580] Interleaved list of addresses:&#xA;[tcp @ 000001d0e7c31580] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31580] Starting connection attempt to 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31580] Successfully connected to 144.2.127.86 port 80&#xA;[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1&#xA;User-Agent: Lavf/58.45.100&#xA;Accept: */*&#xA;Range: bytes=6266023-&#xA;Connection: close&#xA;Host: tyberis.com&#xA;Icy-MetaData: 1&#xA;&#xA;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;HTTP/1.1 206 Partial Content&#x27;&#xA;[http @ 000001d0e7bbe2c0] http_code=206&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Type: video/vnd.dlna.mpeg-tts&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Accept-Ranges: bytes&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;ETag: "7c6a9e6895b7d61:0"&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Server: Microsoft-IIS/10.0&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Origin: *&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Credentials: true&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Date: Wed, 11 Nov 2020 15:52:32 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Connection: close&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Length: 265473&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Range: bytes 6266023-6531495/6531496&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;&#x27;&#xA;[tcp @ 000001d0e7c31480] Original list of addresses:&#xA;[tcp @ 000001d0e7c31480] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31480] Interleaved list of addresses:&#xA;[tcp @ 000001d0e7c31480] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31480] Starting connection attempt to 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31480] Successfully connected to 144.2.127.86 port 80&#xA;[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1&#xA;User-Agent: Lavf/58.45.100&#xA;Accept: */*&#xA;Range: bytes=6281644-&#xA;Connection: close&#xA;Host: tyberis.com&#xA;Icy-MetaData: 1&#xA;&#xA;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;HTTP/1.1 206 Partial Content&#x27;&#xA;[http @ 000001d0e7bbe2c0] http_code=206&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Type: video/vnd.dlna.mpeg-tts&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Accept-Ranges: bytes&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;ETag: "7c6a9e6895b7d61:0"&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Server: Microsoft-IIS/10.0&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Origin: *&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Credentials: true&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Date: Wed, 11 Nov 2020 15:52:33 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Connection: close&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Length: 249852&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Range: bytes 6281644-6531495/6531496&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;&#x27;&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;    Last message repeated 88 times&#xA;[tcp @ 000001d0e7c31580] Original list of addresses:&#xA;[tcp @ 000001d0e7c31580] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31580] Interleaved list of addresses:&#xA;[tcp @ 000001d0e7c31580] Address 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31580] Starting connection attempt to 144.2.127.86 port 80&#xA;[tcp @ 000001d0e7c31580] Successfully connected to 144.2.127.86 port 80&#xA;[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1&#xA;User-Agent: Lavf/58.45.100&#xA;Accept: */*&#xA;Range: bytes=0-&#xA;Connection: close&#xA;Host: tyberis.com&#xA;Icy-MetaData: 1&#xA;&#xA;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;HTTP/1.1 206 Partial Content&#x27;&#xA;[http @ 000001d0e7bbe2c0] http_code=206&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Type: video/vnd.dlna.mpeg-tts&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Accept-Ranges: bytes&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;ETag: "7c6a9e6895b7d61:0"&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Server: Microsoft-IIS/10.0&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Origin: *&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Access-Control-Allow-Credentials: true&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Date: Wed, 11 Nov 2020 15:52:33 GMT&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Connection: close&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Length: 6531496&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;Content-Range: bytes 0-6531495/6531496&#x27;&#xA;[http @ 000001d0e7bbe2c0] header=&#x27;&#x27;&#xA;[mpegts @ 000001d0e7bbd200] stream 0: start_time: 1.4 duration: 1097.98&#xA;[mpegts @ 000001d0e7bbd200] format: start_time: 1.4 duration: 1097.98 (estimate from pts) bitrate=47 kb/s&#xA;[mpegts @ 000001d0e7bbd200] After avformat_find_stream_info() pos: 0 bytes read:329238 seeks:3 frames:117&#xA;Input #0, mpegts, from &#x27;http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts&#x27;:&#xA;  Duration: 00:18:17.98, start: 1.400000, bitrate: 47 kb/s&#xA;  Program 1&#xA;    Metadata:&#xA;      service_name    : Service01&#xA;      service_provider: FFmpeg&#xA;    Stream #0:0[0x100], 117, 1/90000: Audio: aac (HE-AACv2) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 45 kb/s&#xA;Successfully opened the file.&#xA;Parsing a group of options: output url out.wav.&#xA;Applying option af (set audio filters) with argument aresample=async=1.&#xA;Applying option f (force format) with argument wav.&#xA;Applying option acodec (force audio codec (&#x27;copy&#x27; to copy stream)) with argument pcm_s16le.&#xA;Applying option ac (set number of audio channels) with argument 2.&#xA;Successfully parsed a group of options.&#xA;Opening an output file: out.wav.&#xA;[file @ 000001d0e7c06200] Setting default whitelist &#x27;file,crypto,data&#x27;&#xA;Successfully opened the file.&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (aac (native) -> pcm_s16le (native))&#xA;Press [q] to stop, [?] for help&#xA;cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)&#xA;[mpegts @ 000001d0e7bbd200] Skipping after seek&#xA;[mpegts @ 000001d0e7bbd200] SDT:&#xA;[mpegts @ 000001d0e7bbd200] tag: 0x48 len=18&#xA;[mpegts @ 000001d0e7bbd200] new_program: id=0x0001&#xA;[mpegts @ 000001d0e7bbd200] PAT:&#xA;[mpegts @ 000001d0e7bbd200] sid=0x1 pid=0x1000&#xA;[mpegts @ 000001d0e7bbd200] new_program: id=0x0001&#xA;[mpegts @ 000001d0e7bbd200] PMT: len 21&#xA;[mpegts @ 000001d0e7bbd200] sid=0x1 sec_num=0/0 version=0 tid=2&#xA;[mpegts @ 000001d0e7bbd200] pcr_pid=0x100&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;detected 4 logical cores&#xA;[Parsed_aresample_0 @ 000001d0e7be5e80] Setting &#x27;async&#x27; to value &#x27;1&#x27;&#xA;[graph_0_in_0_0 @ 000001d0e7beeac0] Setting &#x27;time_base&#x27; to value &#x27;1/44100&#x27;&#xA;[graph_0_in_0_0 @ 000001d0e7beeac0] Setting &#x27;sample_rate&#x27; to value &#x27;44100&#x27;&#xA;[graph_0_in_0_0 @ 000001d0e7beeac0] Setting &#x27;sample_fmt&#x27; to value &#x27;fltp&#x27;&#xA;[graph_0_in_0_0 @ 000001d0e7beeac0] Setting &#x27;channel_layout&#x27; to value &#x27;0x3&#x27;&#xA;[graph_0_in_0_0 @ 000001d0e7beeac0] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3&#xA;[format_out_0_0 @ 000001d0e7bf0080] Setting &#x27;sample_fmts&#x27; to value &#x27;s16&#x27;&#xA;[format_out_0_0 @ 000001d0e7bf0080] Setting &#x27;channel_layouts&#x27; to value &#x27;0x3&#x27;&#xA;[AVFilterGraph @ 000001d0e7be6540] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed&#xA;[Parsed_aresample_0 @ 000001d0e7be5e80] [SWR @ 000001d0e81bb8c0] Using fltp internally between filters&#xA;[Parsed_aresample_0 @ 000001d0e7be5e80] ch:2 chl:stereo fmt:fltp r:44100Hz -> ch:2 chl:stereo fmt:s16 r:44100Hz&#xA;Output #0, wav, to &#x27;out.wav&#x27;:&#xA;  Metadata:&#xA;    ISFT            : Lavf58.45.100&#xA;    Stream #0:0, 0, 1/44100: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s&#xA;    Metadata:&#xA;      encoder         : Lavc58.91.100 pcm_s16le&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 7 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;(...)&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 4 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;timestamp discontinuity for stream #0:0 (id=256, type=audio): 69892061, new offset= -71292061&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;[aac @ 000001d0e7c0ed80] illegal icc&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 7 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0&#xA;[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing&#xA;    Last message repeated 9 times&#xA;(...)&#xA;size=    5000kB time=00:00:29.02 bitrate=1411.2kbits/s speed=6.11x&#xA;video:0kB audio:5000kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001523%&#xA;Input file #0 (http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts):&#xA;  Input stream #0:0 (audio): 625 packets read (174267 bytes); 625 frames decoded (1280000 samples);&#xA;  Total: 625 packets (174267 bytes) demuxed&#xA;Output file #0 (out.wav):&#xA;  Output stream #0:0 (audio): 625 frames encoded (1280000 samples); 625 packets muxed (5120000 bytes);&#xA;  Total: 625 packets (5120000 bytes) muxed&#xA;625 frames successfully decoded, 0 decoding errors&#xA;[AVIOContext @ 000001d0e7c2e280] Statistics: 4 seeks, 22 writeouts&#xA;[AVIOContext @ 000001d0e7bc9780] Statistics: 533494 bytes read, 3 seeks```&#xA;

    &#xA;