
Recherche avancée
Médias (29)
-
#7 Ambience
16 octobre 2011, par
Mis à jour : Juin 2015
Langue : English
Type : Audio
-
#6 Teaser Music
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#5 End Title
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#3 The Safest Place
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#4 Emo Creates
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#2 Typewriter Dance
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
Autres articles (62)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications 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, parCertains 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, parPré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 xyfixCan 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 SummitI 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.

 streamerUpd.InitUPD("udp://127.0.0.1:1234", 1920, 1080, rings_);

int StreamUPD::InitUPD(const char* url, int width, int height, std::shared_ptr<ringbuffer2> rings)
{

 rings_ = rings;
 width_ = width;
 height_ = height;
 filename = url;
 int ret;
 av_dict_set(&opt, "pkt_size", "1316", 0);
 
 
 avformat_alloc_output_context2(&oc, nullptr, "mpegts", filename);
 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(&video_st, oc, &video_codec, fmt->video_codec);
 have_video = 1;
 encode_video = 1;
 }

 /* Write the stream header, if any. */
 ret = avformat_write_header(oc, &opt);
 if (ret < 0) {
 fprintf(stderr, "Error occurred when opening output file: %s\n",
 av_err2str(ret));
 return 1;
 }
 thr = std::thread(&StreamUPD::output_result, this);
 return 0;
}
</ringbuffer2>


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


// Add the output stream


void StreamUPD::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_VIDEO:
 c->codec_id = codec_id;
 c->bit_rate = 400000;

 /* Resolution must be a multiple of two. */
 c->width = width_;
 c->height = height_;
 /* 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 = { 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 */
 qDebug() << "This is MPEG2VIDEO Frame";
 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;
 }
 /* Some formats want stream headers to be separate. */
 if (oc->oformat->flags & AVFMT_GLOBALHEADER)
 c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
}



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


// Open the video


void StreamUPD::open_video(AVFormatContext* oc, AVCodec* codec, OutputStream* ost, AVDictionary* opt_arg)
 {
 int ret;
 AVCodecContext* c = ost->enc;
 AVDictionary* opt = NULL;
 av_dict_copy(&opt, opt_arg, 0);
 /* open the codec */
 ret = avcodec_open2(c, codec, &opt);
 av_dict_free(&opt);
 if (ret < 0) {
 fprintf(stderr, "Could not open video codec: %s\n", av_err2str(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 < 0) {
 fprintf(stderr, "Could not copy the stream parameters\n");
 exit(1);
 }
 }



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


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


int StreamUPD::stream_video_frame()
{ 
 ost = &video_st;
 c = ost->enc; 

 /* 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) < 0)
 exit(1);
 if (!ost->sws_ctx) {
 ost->sws_ctx = sws_getContext(c->width, c->height,
 AV_PIX_FMT_RGB24,
 c->width, c->height,
 c->pix_fmt,
 SWS_FAST_BILINEAR, NULL, NULL, NULL);
 if (!ost->sws_ctx) {
 fprintf(stderr,
 "Could not initialize the conversion context\n");
 exit(1);
 }
 }
 finished_ = true;

 if (pixelsQueue.size() > 0) { 
 if (pixelsQueue.pop(pixels)) {
 fill_yuv_image(ost->sws_ctx, frame_data->pixels_.get(), ost->frame, c->width, c->height);
 ost->frame->pts = ost->next_pts++;
 return write_frame(oc, ost->enc, ost->st, ost->frame);
 }
 }
 return 1;
}



Writing the data to the output stream.


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


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



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


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.


-
ffmpeg aresample has no effect while it works in ffplay
11 novembre 2020, par Lemon SkyI 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 :


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


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


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 -


What am I doing wrong ?


Log :


>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
ffmpeg version 4.3.1-2020-11-08-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 10.2.0 (Rev3, Built by MSYS2 project)
 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
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-nostats' ... matched as option 'stats' (print progress report during encoding) with argument 0.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'trace'.
Reading option '-i' ... matched as input url with argument 'http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts'.
Reading option '-af' ... matched as option 'af' (set audio filters) with argument 'aresample=async=1'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'wav'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'pcm_s16le'.
Reading option '-ac' ... matched as option 'ac' (set number of audio channels) with argument '2'.
Reading option 'out.wav' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option nostats (print progress report during encoding) with argument 0.
Applying option loglevel (set logging level) with argument trace.
Successfully parsed a group of options.
Parsing a group of options: input url http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts.
Successfully parsed a group of options.
Opening an input file: http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts.
[NULL @ 000001d0e7bbd200] Opening 'http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts' for reading
[http @ 000001d0e7bbe2c0] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy,data'
[tcp @ 000001d0e7bc0d00] Original list of addresses:
[tcp @ 000001d0e7bc0d00] Address 144.2.127.86 port 80
[tcp @ 000001d0e7bc0d00] Interleaved list of addresses:
[tcp @ 000001d0e7bc0d00] Address 144.2.127.86 port 80
[tcp @ 000001d0e7bc0d00] Starting connection attempt to 144.2.127.86 port 80
[tcp @ 000001d0e7bc0d00] Successfully connected to 144.2.127.86 port 80
[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1
User-Agent: Lavf/58.45.100
Accept: */*
Range: bytes=0-
Connection: close
Host: tyberis.com
Icy-MetaData: 1


[http @ 000001d0e7bbe2c0] header='HTTP/1.1 206 Partial Content'
[http @ 000001d0e7bbe2c0] http_code=206
[http @ 000001d0e7bbe2c0] header='Content-Type: video/vnd.dlna.mpeg-tts'
[http @ 000001d0e7bbe2c0] header='Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT'
[http @ 000001d0e7bbe2c0] header='Accept-Ranges: bytes'
[http @ 000001d0e7bbe2c0] header='ETag: "7c6a9e6895b7d61:0"'
[http @ 000001d0e7bbe2c0] header='Server: Microsoft-IIS/10.0'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Origin: *'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Credentials: true'
[http @ 000001d0e7bbe2c0] header='Date: Wed, 11 Nov 2020 15:52:32 GMT'
[http @ 000001d0e7bbe2c0] header='Connection: close'
[http @ 000001d0e7bbe2c0] header='Content-Length: 6531496'
[http @ 000001d0e7bbe2c0] header='Content-Range: bytes 0-6531495/6531496'
[http @ 000001d0e7bbe2c0] header=''
Probing mpegts score:50 size:2048
[mpegts @ 000001d0e7bbd200] Format mpegts probed with size=2048 and score=50
[mpegts @ 000001d0e7bbd200] Probe: 7648, score: 41, dvhs_score: -2, fec_score: -2
[mpegts @ 000001d0e7bbd200] Filter: pid=0x11 type=1
[mpegts @ 000001d0e7bbd200] Filter: pid=0x0 type=1
[mpegts @ 000001d0e7bbd200] Filter: pid=0x12 type=1
[mpegts @ 000001d0e7bbd200] SDT:
[mpegts @ 000001d0e7bbd200] tag: 0x48 len=18
[mpegts @ 000001d0e7bbd200] new_program: id=0x0001
[mpegts @ 000001d0e7bbd200] PAT:
[mpegts @ 000001d0e7bbd200] sid=0x1 pid=0x1000
[mpegts @ 000001d0e7bbd200] new_program: id=0x0001
[mpegts @ 000001d0e7bbd200] Filter: pid=0x1000 type=1
[mpegts @ 000001d0e7bbd200] PMT: len 21
[mpegts @ 000001d0e7bbd200] sid=0x1 sec_num=0/0 version=0 tid=2
[mpegts @ 000001d0e7bbd200] pcr_pid=0x100
[mpegts @ 000001d0e7bbd200] Filter: pid=0x100 type=0
[mpegts @ 000001d0e7bbd200] stream=0 stream_type=f pid=100 prog_reg_desc=
[mpegts @ 000001d0e7bbd200] tuning done
[mpegts @ 000001d0e7bbd200] Before avformat_find_stream_info() pos: 0 bytes read:7648 seeks:0 nb_streams:1
[mpegts @ 000001d0e7bbd200] Skipping after seek
[mpegts @ 000001d0e7bbd200] SDT:
[mpegts @ 000001d0e7bbd200] tag: 0x48 len=18
[mpegts @ 000001d0e7bbd200] new_program: id=0x0001
[mpegts @ 000001d0e7bbd200] PAT:
[mpegts @ 000001d0e7bbd200] sid=0x1 pid=0x1000
[mpegts @ 000001d0e7bbd200] new_program: id=0x0001
[mpegts @ 000001d0e7bbd200] PMT: len 21
[mpegts @ 000001d0e7bbd200] sid=0x1 sec_num=0/0 version=0 tid=2
[mpegts @ 000001d0e7bbd200] pcr_pid=0x100
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[mpegts @ 000001d0e7bbd200] probing stream 0 pp:2500
Probing aac score:51 size:2640
Probing flac score:13 size:2640
[mpegts @ 000001d0e7bbd200] Probe with size=2640, packets=1 detected aac with score=51
[mpegts @ 000001d0e7bbd200] probed stream 0
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
 Last message repeated 11 times
[mpegts @ 000001d0e7bbd200] max_analyze_duration 5000000 reached at 5014800 microseconds st:0
[tcp @ 000001d0e7c31480] Original list of addresses:
[tcp @ 000001d0e7c31480] Address 144.2.127.86 port 80
[tcp @ 000001d0e7c31480] Interleaved list of addresses:
[tcp @ 000001d0e7c31480] Address 144.2.127.86 port 80
[tcp @ 000001d0e7c31480] Starting connection attempt to 144.2.127.86 port 80
[tcp @ 000001d0e7c31480] Successfully connected to 144.2.127.86 port 80
[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1
User-Agent: Lavf/58.45.100
Accept: */*
Range: bytes=6281496-
Connection: close
Host: tyberis.com
Icy-MetaData: 1


[http @ 000001d0e7bbe2c0] header='HTTP/1.1 206 Partial Content'
[http @ 000001d0e7bbe2c0] http_code=206
[http @ 000001d0e7bbe2c0] header='Content-Type: video/vnd.dlna.mpeg-tts'
[http @ 000001d0e7bbe2c0] header='Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT'
[http @ 000001d0e7bbe2c0] header='Accept-Ranges: bytes'
[http @ 000001d0e7bbe2c0] header='ETag: "7c6a9e6895b7d61:0"'
[http @ 000001d0e7bbe2c0] header='Server: Microsoft-IIS/10.0'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Origin: *'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Credentials: true'
[http @ 000001d0e7bbe2c0] header='Date: Wed, 11 Nov 2020 15:52:32 GMT'
[http @ 000001d0e7bbe2c0] header='Connection: close'
[http @ 000001d0e7bbe2c0] header='Content-Length: 250000'
[http @ 000001d0e7bbe2c0] header='Content-Range: bytes 6281496-6531495/6531496'
[http @ 000001d0e7bbe2c0] header=''
[mpegts @ 000001d0e7bbd200] Skipping after seek
[mpegts @ 000001d0e7bbd200] Probe: 763, score: 5, dvhs_score: 1, fec_score: 1
[mpegts @ 000001d0e7bbd200] Probe: 8192, score: 44, dvhs_score: -3, fec_score: -3
[tcp @ 000001d0e7c31580] Original list of addresses:
[tcp @ 000001d0e7c31580] Address 144.2.127.86 port 80
[tcp @ 000001d0e7c31580] Interleaved list of addresses:
[tcp @ 000001d0e7c31580] Address 144.2.127.86 port 80
[tcp @ 000001d0e7c31580] Starting connection attempt to 144.2.127.86 port 80
[tcp @ 000001d0e7c31580] Successfully connected to 144.2.127.86 port 80
[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1
User-Agent: Lavf/58.45.100
Accept: */*
Range: bytes=6266023-
Connection: close
Host: tyberis.com
Icy-MetaData: 1


[http @ 000001d0e7bbe2c0] header='HTTP/1.1 206 Partial Content'
[http @ 000001d0e7bbe2c0] http_code=206
[http @ 000001d0e7bbe2c0] header='Content-Type: video/vnd.dlna.mpeg-tts'
[http @ 000001d0e7bbe2c0] header='Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT'
[http @ 000001d0e7bbe2c0] header='Accept-Ranges: bytes'
[http @ 000001d0e7bbe2c0] header='ETag: "7c6a9e6895b7d61:0"'
[http @ 000001d0e7bbe2c0] header='Server: Microsoft-IIS/10.0'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Origin: *'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Credentials: true'
[http @ 000001d0e7bbe2c0] header='Date: Wed, 11 Nov 2020 15:52:32 GMT'
[http @ 000001d0e7bbe2c0] header='Connection: close'
[http @ 000001d0e7bbe2c0] header='Content-Length: 265473'
[http @ 000001d0e7bbe2c0] header='Content-Range: bytes 6266023-6531495/6531496'
[http @ 000001d0e7bbe2c0] header=''
[tcp @ 000001d0e7c31480] Original list of addresses:
[tcp @ 000001d0e7c31480] Address 144.2.127.86 port 80
[tcp @ 000001d0e7c31480] Interleaved list of addresses:
[tcp @ 000001d0e7c31480] Address 144.2.127.86 port 80
[tcp @ 000001d0e7c31480] Starting connection attempt to 144.2.127.86 port 80
[tcp @ 000001d0e7c31480] Successfully connected to 144.2.127.86 port 80
[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1
User-Agent: Lavf/58.45.100
Accept: */*
Range: bytes=6281644-
Connection: close
Host: tyberis.com
Icy-MetaData: 1


[http @ 000001d0e7bbe2c0] header='HTTP/1.1 206 Partial Content'
[http @ 000001d0e7bbe2c0] http_code=206
[http @ 000001d0e7bbe2c0] header='Content-Type: video/vnd.dlna.mpeg-tts'
[http @ 000001d0e7bbe2c0] header='Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT'
[http @ 000001d0e7bbe2c0] header='Accept-Ranges: bytes'
[http @ 000001d0e7bbe2c0] header='ETag: "7c6a9e6895b7d61:0"'
[http @ 000001d0e7bbe2c0] header='Server: Microsoft-IIS/10.0'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Origin: *'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Credentials: true'
[http @ 000001d0e7bbe2c0] header='Date: Wed, 11 Nov 2020 15:52:33 GMT'
[http @ 000001d0e7bbe2c0] header='Connection: close'
[http @ 000001d0e7bbe2c0] header='Content-Length: 249852'
[http @ 000001d0e7bbe2c0] header='Content-Range: bytes 6281644-6531495/6531496'
[http @ 000001d0e7bbe2c0] header=''
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
 Last message repeated 88 times
[tcp @ 000001d0e7c31580] Original list of addresses:
[tcp @ 000001d0e7c31580] Address 144.2.127.86 port 80
[tcp @ 000001d0e7c31580] Interleaved list of addresses:
[tcp @ 000001d0e7c31580] Address 144.2.127.86 port 80
[tcp @ 000001d0e7c31580] Starting connection attempt to 144.2.127.86 port 80
[tcp @ 000001d0e7c31580] Successfully connected to 144.2.127.86 port 80
[http @ 000001d0e7bbe2c0] request: GET /KFYI-AM_2020-10-30_09-05-26.ts HTTP/1.1
User-Agent: Lavf/58.45.100
Accept: */*
Range: bytes=0-
Connection: close
Host: tyberis.com
Icy-MetaData: 1


[http @ 000001d0e7bbe2c0] header='HTTP/1.1 206 Partial Content'
[http @ 000001d0e7bbe2c0] http_code=206
[http @ 000001d0e7bbe2c0] header='Content-Type: video/vnd.dlna.mpeg-tts'
[http @ 000001d0e7bbe2c0] header='Last-Modified: Tue, 10 Nov 2020 19:12:18 GMT'
[http @ 000001d0e7bbe2c0] header='Accept-Ranges: bytes'
[http @ 000001d0e7bbe2c0] header='ETag: "7c6a9e6895b7d61:0"'
[http @ 000001d0e7bbe2c0] header='Server: Microsoft-IIS/10.0'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Origin: *'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, Range'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT'
[http @ 000001d0e7bbe2c0] header='Access-Control-Allow-Credentials: true'
[http @ 000001d0e7bbe2c0] header='Date: Wed, 11 Nov 2020 15:52:33 GMT'
[http @ 000001d0e7bbe2c0] header='Connection: close'
[http @ 000001d0e7bbe2c0] header='Content-Length: 6531496'
[http @ 000001d0e7bbe2c0] header='Content-Range: bytes 0-6531495/6531496'
[http @ 000001d0e7bbe2c0] header=''
[mpegts @ 000001d0e7bbd200] stream 0: start_time: 1.4 duration: 1097.98
[mpegts @ 000001d0e7bbd200] format: start_time: 1.4 duration: 1097.98 (estimate from pts) bitrate=47 kb/s
[mpegts @ 000001d0e7bbd200] After avformat_find_stream_info() pos: 0 bytes read:329238 seeks:3 frames:117
Input #0, mpegts, from 'http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts':
 Duration: 00:18:17.98, start: 1.400000, bitrate: 47 kb/s
 Program 1
 Metadata:
 service_name : Service01
 service_provider: FFmpeg
 Stream #0:0[0x100], 117, 1/90000: Audio: aac (HE-AACv2) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 45 kb/s
Successfully opened the file.
Parsing a group of options: output url out.wav.
Applying option af (set audio filters) with argument aresample=async=1.
Applying option f (force format) with argument wav.
Applying option acodec (force audio codec ('copy' to copy stream)) with argument pcm_s16le.
Applying option ac (set number of audio channels) with argument 2.
Successfully parsed a group of options.
Opening an output file: out.wav.
[file @ 000001d0e7c06200] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
 Stream #0:0 -> #0:0 (aac (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
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)
[mpegts @ 000001d0e7bbd200] Skipping after seek
[mpegts @ 000001d0e7bbd200] SDT:
[mpegts @ 000001d0e7bbd200] tag: 0x48 len=18
[mpegts @ 000001d0e7bbd200] new_program: id=0x0001
[mpegts @ 000001d0e7bbd200] PAT:
[mpegts @ 000001d0e7bbd200] sid=0x1 pid=0x1000
[mpegts @ 000001d0e7bbd200] new_program: id=0x0001
[mpegts @ 000001d0e7bbd200] PMT: len 21
[mpegts @ 000001d0e7bbd200] sid=0x1 sec_num=0/0 version=0 tid=2
[mpegts @ 000001d0e7bbd200] pcr_pid=0x100
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
detected 4 logical cores
[Parsed_aresample_0 @ 000001d0e7be5e80] Setting 'async' to value '1'
[graph_0_in_0_0 @ 000001d0e7beeac0] Setting 'time_base' to value '1/44100'
[graph_0_in_0_0 @ 000001d0e7beeac0] Setting 'sample_rate' to value '44100'
[graph_0_in_0_0 @ 000001d0e7beeac0] Setting 'sample_fmt' to value 'fltp'
[graph_0_in_0_0 @ 000001d0e7beeac0] Setting 'channel_layout' to value '0x3'
[graph_0_in_0_0 @ 000001d0e7beeac0] tb:1/44100 samplefmt:fltp samplerate:44100 chlayout:0x3
[format_out_0_0 @ 000001d0e7bf0080] Setting 'sample_fmts' to value 's16'
[format_out_0_0 @ 000001d0e7bf0080] Setting 'channel_layouts' to value '0x3'
[AVFilterGraph @ 000001d0e7be6540] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
[Parsed_aresample_0 @ 000001d0e7be5e80] [SWR @ 000001d0e81bb8c0] Using fltp internally between filters
[Parsed_aresample_0 @ 000001d0e7be5e80] ch:2 chl:stereo fmt:fltp r:44100Hz -> ch:2 chl:stereo fmt:s16 r:44100Hz
Output #0, wav, to 'out.wav':
 Metadata:
 ISFT : Lavf58.45.100
 Stream #0:0, 0, 1/44100: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
 Metadata:
 encoder : Lavc58.91.100 pcm_s16le
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 7 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
(...)
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 4 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
timestamp discontinuity for stream #0:0 (id=256, type=audio): 69892061, new offset= -71292061
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
[aac @ 000001d0e7c0ed80] illegal icc
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 7 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
[mpegts @ 000001d0e7bbd200] pid=100 pes_code=0x1c0
[aac @ 000001d0e7c0ed80] ChannelElement 1.0 missing
 Last message repeated 9 times
(...)
size= 5000kB time=00:00:29.02 bitrate=1411.2kbits/s speed=6.11x
video:0kB audio:5000kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001523%
Input file #0 (http://tyberis.com/KFYI-AM_2020-10-30_09-05-26.ts):
 Input stream #0:0 (audio): 625 packets read (174267 bytes); 625 frames decoded (1280000 samples);
 Total: 625 packets (174267 bytes) demuxed
Output file #0 (out.wav):
 Output stream #0:0 (audio): 625 frames encoded (1280000 samples); 625 packets muxed (5120000 bytes);
 Total: 625 packets (5120000 bytes) muxed
625 frames successfully decoded, 0 decoding errors
[AVIOContext @ 000001d0e7c2e280] Statistics: 4 seeks, 22 writeouts
[AVIOContext @ 000001d0e7bc9780] Statistics: 533494 bytes read, 3 seeks```