
Recherche avancée
Médias (91)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
-
avec chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
sans chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
config chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
Autres articles (29)
-
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
Gestion de la ferme
2 mars 2010, parLa ferme est gérée dans son ensemble par des "super admins".
Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
Dans un premier temps il utilise le plugin "Gestion de mutualisation" -
MediaSPIP Core : La Configuration
9 novembre 2010, parMediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...)
Sur d’autres sites (4594)
-
How to fix ffmpeg's offical tutorials03 bug that sound does't work well ?
31 janvier 2019, par xiaodaiI want to learn to make a player with ffmpeg and sdl. The tutorial I used is this.[http://dranger.com/ffmpeg/tutorial03.html] Though I have resampled the audio from decode stream, the sound still plays with loud noise.
I have no ideas to fix it anymore.
I used the following :
- the latest ffmpeg and sdl1
- Visual Studio 2010
// tutorial03.c
// A pedagogical video player that will stream through every video frame as fast as it can
// and play audio (out of sync).
//
// This tutorial was written by Stephen Dranger (dranger@gmail.com).
//
// Code based on FFplay, Copyright (c) 2003 Fabrice Bellard,
// and a tutorial by Martin Bohme (boehme@inb.uni-luebeckREMOVETHIS.de)
// Tested on Gentoo, CVS version 5/01/07 compiled with GCC 4.1.1
//
// Use the Makefile to build all examples.
//
// Run using
// tutorial03 myvideofile.mpg
//
// to play the stream on your screen.
extern "C"{
#include <libavcodec></libavcodec>avcodec.h>
#include <libavformat></libavformat>avformat.h>
#include <libswscale></libswscale>swscale.h>
#include <libavutil></libavutil>channel_layout.h>
#include <libavutil></libavutil>common.h>
#include <libavutil></libavutil>frame.h>
#include <libavutil></libavutil>samplefmt.h>
#include "libswresample/swresample.h"
#include <sdl></sdl>SDL.h>
#include <sdl></sdl>SDL_thread.h>
};
#ifdef __WIN32__
#undef main /* Prevents SDL from overriding main() */
#endif
#include
#define SDL_AUDIO_BUFFER_SIZE 1024
#define MAX_AUDIO_FRAME_SIZE 192000
struct SwrContext *audio_swrCtx;
FILE *pFile=fopen("output.pcm", "wb");
FILE *pFile_stream=fopen("output_stream.pcm","wb");
int audio_len;
typedef struct PacketQueue {
AVPacketList *first_pkt, *last_pkt;
int nb_packets;
int size;
SDL_mutex *mutex;
SDL_cond *cond;
} PacketQueue;
PacketQueue audioq;
int quit = 0;
void packet_queue_init(PacketQueue *q) {
memset(q, 0, sizeof(PacketQueue));
q->mutex = SDL_CreateMutex();
q->cond = SDL_CreateCond();
}
int packet_queue_put(PacketQueue *q, AVPacket *pkt) {
AVPacketList *pkt1;
if(av_dup_packet(pkt) < 0) {
return -1;
}
pkt1 = (AVPacketList *)av_malloc(sizeof(AVPacketList));
if(!pkt1) {
return -1;
}
pkt1->pkt = *pkt;
pkt1->next = NULL;
SDL_LockMutex(q->mutex);
if(!q->last_pkt) {
q->first_pkt = pkt1;
}
else {
q->last_pkt->next = pkt1;
}
q->last_pkt = pkt1;
q->nb_packets++;
q->size += pkt1->pkt.size;
SDL_CondSignal(q->cond);
SDL_UnlockMutex(q->mutex);
return 0;
}
static int packet_queue_get(PacketQueue *q, AVPacket *pkt, int block) {
AVPacketList *pkt1;
int ret;
SDL_LockMutex(q->mutex);
for(;;) {
if(quit) {
ret = -1;
break;
}
pkt1 = q->first_pkt;
if(pkt1) {
q->first_pkt = pkt1->next;
if(!q->first_pkt) {
q->last_pkt = NULL;
}
q->nb_packets--;
q->size -= pkt1->pkt.size;
*pkt = pkt1->pkt;
av_free(pkt1);
ret = 1;
break;
} else if(!block) {
ret = 0;
break;
} else {
SDL_CondWait(q->cond, q->mutex);
}
}
SDL_UnlockMutex(q->mutex);
return ret;
}
int audio_decode_frame(AVCodecContext *aCodecCtx, uint8_t *audio_buf, int buf_size) {
static AVPacket pkt;
static uint8_t *audio_pkt_data = NULL;
static int audio_pkt_size = 0;
static AVFrame frame;
int len1, data_size = 0;
for(;;) {
while(audio_pkt_size > 0) {
int got_frame = 0;
len1 = avcodec_decode_audio4(aCodecCtx, &frame, &got_frame, &pkt);
if(len1 < 0) {
/* if error, skip frame */
audio_pkt_size = 0;
break;
}
audio_pkt_data += len1;
audio_pkt_size -= len1;
data_size = 0;
/*
au_convert_ctx = swr_alloc();
au_convert_ctx=swr_alloc_set_opts(au_convert_ctx,out_channel_layout, out_sample_fmt, out_sample_rate,
in_channel_layout,pCodecCtx->sample_fmt , pCodecCtx->sample_rate,0, NULL);
swr_init(au_convert_ctx);
swr_convert(au_convert_ctx,&out_buffer, MAX_AUDIO_FRAME_SIZE,(const uint8_t **)pFrame->data , pFrame->nb_samples);
*/
if( got_frame ) {
audio_swrCtx=swr_alloc();
audio_swrCtx=swr_alloc_set_opts(audio_swrCtx, // we're allocating a new context
AV_CH_LAYOUT_STEREO,//AV_CH_LAYOUT_STEREO, // out_ch_layout
AV_SAMPLE_FMT_S16, // out_sample_fmt
44100, // out_sample_rate
aCodecCtx->channel_layout, // in_ch_layout
aCodecCtx->sample_fmt, // in_sample_fmt
aCodecCtx->sample_rate, // in_sample_rate
0, // log_offset
NULL); // log_ctx
int ret=swr_init(audio_swrCtx);
int out_samples = av_rescale_rnd(swr_get_delay(audio_swrCtx, aCodecCtx->sample_rate) + 1024, 44100, aCodecCtx->sample_rate, AV_ROUND_UP);
ret=swr_convert(audio_swrCtx,&audio_buf, MAX_AUDIO_FRAME_SIZE,(const uint8_t **)frame.data ,frame.nb_samples);
data_size =
av_samples_get_buffer_size
(
&data_size,
av_get_channel_layout_nb_channels(AV_CH_LAYOUT_STEREO),
ret,
AV_SAMPLE_FMT_S16,
1
);
fwrite(audio_buf, 1, data_size, pFile);
//memcpy(audio_buf, frame.data[0], data_size);
swr_free(&audio_swrCtx);
}
if(data_size <= 0) {
/* No data yet, get more frames */
continue;
}
/* We have data, return it and come back for more later */
return data_size;
}
if(pkt.data) {
av_free_packet(&pkt);
}
if(quit) {
return -1;
}
if(packet_queue_get(&audioq, &pkt, 1) < 0) {
return -1;
}
audio_pkt_data = pkt.data;
audio_pkt_size = pkt.size;
}
}
void audio_callback(void *userdata, Uint8 *stream, int len) {
AVCodecContext *aCodecCtx = (AVCodecContext *)userdata;
int /*audio_len,*/ audio_size;
static uint8_t audio_buf[(MAX_AUDIO_FRAME_SIZE * 3) / 2];
static unsigned int audio_buf_size = 0;
static unsigned int audio_buf_index = 0;
//SDL_memset(stream, 0, len);
while(len > 0) {
if(audio_buf_index >= audio_buf_size) {
/* We have already sent all our data; get more */
audio_size = audio_decode_frame(aCodecCtx, audio_buf, audio_buf_size);
if(audio_size < 0) {
/* If error, output silence */
audio_buf_size = 1024; // arbitrary?
memset(audio_buf, 0, audio_buf_size);
} else {
audio_buf_size = audio_size;
}
audio_buf_index = 0;
}
audio_len = audio_buf_size - audio_buf_index;
if(audio_len > len) {
audio_len = len;
}
memcpy(stream, (uint8_t *)audio_buf , audio_len);
//SDL_MixAudio(stream,(uint8_t*)audio_buf,audio_len,SDL_MIX_MAXVOLUME);
fwrite(audio_buf, 1, audio_len, pFile_stream);
len -= audio_len;
stream += audio_len;
audio_buf_index += audio_len;
audio_len=len;
}
}
int main(int argc, char *argv[]) {
AVFormatContext *pFormatCtx = NULL;
int i, videoStream, audioStream;
AVCodecContext *pCodecCtx = NULL;
AVCodec *pCodec = NULL;
AVFrame *pFrame = NULL;
AVPacket packet;
int frameFinished;
//float aspect_ratio;
AVCodecContext *aCodecCtx = NULL;
AVCodec *aCodec = NULL;
SDL_Overlay *bmp = NULL;
SDL_Surface *screen = NULL;
SDL_Rect rect;
SDL_Event event;
SDL_AudioSpec wanted_spec, spec;
struct SwsContext *sws_ctx = NULL;
AVDictionary *videoOptionsDict = NULL;
AVDictionary *audioOptionsDict = NULL;
if(argc < 2) {
fprintf(stderr, "Usage: test <file>\n");
exit(1);
}
// Register all formats and codecs
av_register_all();
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER)) {
fprintf(stderr, "Could not initialize SDL - %s\n", SDL_GetError());
exit(1);
}
// Open video file
if(avformat_open_input(&pFormatCtx, argv[1]/*"file.mov"*/, NULL, NULL) != 0) {
return -1; // Couldn't open file
}
// Retrieve stream information
if(avformat_find_stream_info(pFormatCtx, NULL) < 0) {
return -1; // Couldn't find stream information
}
// Dump information about file onto standard error
av_dump_format(pFormatCtx, 0, argv[1], 0);
// Find the first video stream
videoStream = -1;
audioStream = -1;
for(i = 0; i < pFormatCtx->nb_streams; i++) {
if(pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO &&
videoStream < 0) {
videoStream = i;
}
if(pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO &&
audioStream < 0) {
audioStream = i;
}
}
if(videoStream == -1) {
return -1; // Didn't find a video stream
}
if(audioStream == -1) {
return -1;
}
aCodecCtx = pFormatCtx->streams[audioStream]->codec;
// Set audio settings from codec info
wanted_spec.freq = 44100;
wanted_spec.format = AUDIO_S16SYS;
wanted_spec.channels = av_get_channel_layout_nb_channels(AV_CH_LAYOUT_STEREO);;
wanted_spec.silence = 0;
wanted_spec.samples = 1024;
wanted_spec.callback = audio_callback;
wanted_spec.userdata = aCodecCtx;
if(SDL_OpenAudio(&wanted_spec, &spec) < 0) {
fprintf(stderr, "SDL_OpenAudio: %s\n", SDL_GetError());
return -1;
}
aCodec = avcodec_find_decoder(aCodecCtx->codec_id);
if(!aCodec) {
fprintf(stderr, "Unsupported codec!\n");
return -1;
}
avcodec_open2(aCodecCtx, aCodec, &audioOptionsDict);
// audio_st = pFormatCtx->streams[index]
packet_queue_init(&audioq);
SDL_PauseAudio(0);
// Get a pointer to the codec context for the video stream
pCodecCtx = pFormatCtx->streams[videoStream]->codec;
// Find the decoder for the video stream
pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
if(pCodec == NULL) {
fprintf(stderr, "Unsupported codec!\n");
return -1; // Codec not found
}
// Open codec
if(avcodec_open2(pCodecCtx, pCodec, &videoOptionsDict) < 0) {
return -1; // Could not open codec
}
// Allocate video frame
pFrame = av_frame_alloc();
// Make a screen to put our video
#ifndef __DARWIN__
screen = SDL_SetVideoMode(pCodecCtx->width, pCodecCtx->height, 0, 0);
#else
screen = SDL_SetVideoMode(pCodecCtx->width, pCodecCtx->height, 24, 0);
#endif
if(!screen) {
fprintf(stderr, "SDL: could not set video mode - exiting\n");
exit(1);
}
// Allocate a place to put our YUV image on that screen
bmp = SDL_CreateYUVOverlay(pCodecCtx->width,
pCodecCtx->height,
SDL_YV12_OVERLAY,
screen);
sws_ctx =
sws_getContext
(
pCodecCtx->width,
pCodecCtx->height,
pCodecCtx->pix_fmt,
pCodecCtx->width,
pCodecCtx->height,
PIX_FMT_YUV420P,
SWS_BILINEAR,
NULL,
NULL,
NULL
);
// Read frames and save first five frames to disk
i = 0;
while(av_read_frame(pFormatCtx, &packet) >= 0) {
// Is this a packet from the video stream?
if(packet.stream_index == videoStream) {
// Decode video frame
avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished,
&packet);
// Did we get a video frame?
if(frameFinished) {
SDL_LockYUVOverlay(bmp);
AVPicture pict;
pict.data[0] = bmp->pixels[0];
pict.data[1] = bmp->pixels[2];
pict.data[2] = bmp->pixels[1];
pict.linesize[0] = bmp->pitches[0];
pict.linesize[1] = bmp->pitches[2];
pict.linesize[2] = bmp->pitches[1];
// Convert the image into YUV format that SDL uses
sws_scale
(
sws_ctx,
(uint8_t const * const *)pFrame->data,
pFrame->linesize,
0,
pCodecCtx->height,
pict.data,
pict.linesize
);
SDL_UnlockYUVOverlay(bmp);
rect.x = 0;
rect.y = 0;
rect.w = pCodecCtx->width;
rect.h = pCodecCtx->height;
SDL_DisplayYUVOverlay(bmp, &rect);
SDL_Delay(40);
av_free_packet(&packet);
}
} else if(packet.stream_index == audioStream) {
packet_queue_put(&audioq, &packet);
} else {
av_free_packet(&packet);
}
// Free the packet that was allocated by av_read_frame
SDL_PollEvent(&event);
switch(event.type) {
case SDL_QUIT:
quit = 1;
SDL_Quit();
exit(0);
break;
default:
break;
}
}
// Free the YUV frame
av_free(pFrame);
/*swr_free(&audio_swrCtx);*/
// Close the codec
avcodec_close(pCodecCtx);
fclose(pFile);
fclose(pFile_stream);
// Close the video file
avformat_close_input(&pFormatCtx);
return 0;
}
</file>I hope to play normally.
-
How to fix ffmpeg's official tutorials03 bug that sound does't work well ? [on hold]
31 janvier 2019, par xiaodaiI want to make a player with ffmpeg and sdl. The tutorial I used is this though I have resampled the audio from decode stream, the sound still plays with loud noise.
I have no ideas to fix it anymore.
I used the following :
- the latest ffmpeg and sdl1
- Visual Studio 2010
// tutorial03.c
// A pedagogical video player that will stream through every video frame as fast as it can
// and play audio (out of sync).
//
// This tutorial was written by Stephen Dranger (dranger@gmail.com).
//
// Code based on FFplay, Copyright (c) 2003 Fabrice Bellard,
// and a tutorial by Martin Bohme (boehme@inb.uni-luebeckREMOVETHIS.de)
// Tested on Gentoo, CVS version 5/01/07 compiled with GCC 4.1.1
//
// Use the Makefile to build all examples.
//
// Run using
// tutorial03 myvideofile.mpg
//
// to play the stream on your screen.
extern "C"{
#include <libavcodec></libavcodec>avcodec.h>
#include <libavformat></libavformat>avformat.h>
#include <libswscale></libswscale>swscale.h>
#include <libavutil></libavutil>channel_layout.h>
#include <libavutil></libavutil>common.h>
#include <libavutil></libavutil>frame.h>
#include <libavutil></libavutil>samplefmt.h>
#include "libswresample/swresample.h"
#include <sdl></sdl>SDL.h>
#include <sdl></sdl>SDL_thread.h>
};
#ifdef __WIN32__
#undef main /* Prevents SDL from overriding main() */
#endif
#include
#define SDL_AUDIO_BUFFER_SIZE 1024
#define MAX_AUDIO_FRAME_SIZE 192000
struct SwrContext *audio_swrCtx;
FILE *pFile=fopen("output.pcm", "wb");
FILE *pFile_stream=fopen("output_stream.pcm","wb");
int audio_len;
typedef struct PacketQueue {
AVPacketList *first_pkt, *last_pkt;
int nb_packets;
int size;
SDL_mutex *mutex;
SDL_cond *cond;
} PacketQueue;
PacketQueue audioq;
int quit = 0;
void packet_queue_init(PacketQueue *q) {
memset(q, 0, sizeof(PacketQueue));
q->mutex = SDL_CreateMutex();
q->cond = SDL_CreateCond();
}
int packet_queue_put(PacketQueue *q, AVPacket *pkt) {
AVPacketList *pkt1;
if(av_dup_packet(pkt) < 0) {
return -1;
}
pkt1 = (AVPacketList *)av_malloc(sizeof(AVPacketList));
if(!pkt1) {
return -1;
}
pkt1->pkt = *pkt;
pkt1->next = NULL;
SDL_LockMutex(q->mutex);
if(!q->last_pkt) {
q->first_pkt = pkt1;
}
else {
q->last_pkt->next = pkt1;
}
q->last_pkt = pkt1;
q->nb_packets++;
q->size += pkt1->pkt.size;
SDL_CondSignal(q->cond);
SDL_UnlockMutex(q->mutex);
return 0;
}
static int packet_queue_get(PacketQueue *q, AVPacket *pkt, int block) {
AVPacketList *pkt1;
int ret;
SDL_LockMutex(q->mutex);
for(;;) {
if(quit) {
ret = -1;
break;
}
pkt1 = q->first_pkt;
if(pkt1) {
q->first_pkt = pkt1->next;
if(!q->first_pkt) {
q->last_pkt = NULL;
}
q->nb_packets--;
q->size -= pkt1->pkt.size;
*pkt = pkt1->pkt;
av_free(pkt1);
ret = 1;
break;
} else if(!block) {
ret = 0;
break;
} else {
SDL_CondWait(q->cond, q->mutex);
}
}
SDL_UnlockMutex(q->mutex);
return ret;
}
int audio_decode_frame(AVCodecContext *aCodecCtx, uint8_t *audio_buf, int buf_size) {
static AVPacket pkt;
static uint8_t *audio_pkt_data = NULL;
static int audio_pkt_size = 0;
static AVFrame frame;
int len1, data_size = 0;
for(;;) {
while(audio_pkt_size > 0) {
int got_frame = 0;
len1 = avcodec_decode_audio4(aCodecCtx, &frame, &got_frame, &pkt);
if(len1 < 0) {
/* if error, skip frame */
audio_pkt_size = 0;
break;
}
audio_pkt_data += len1;
audio_pkt_size -= len1;
data_size = 0;
/*
au_convert_ctx = swr_alloc();
au_convert_ctx=swr_alloc_set_opts(au_convert_ctx,out_channel_layout, out_sample_fmt, out_sample_rate,
in_channel_layout,pCodecCtx->sample_fmt , pCodecCtx->sample_rate,0, NULL);
swr_init(au_convert_ctx);
swr_convert(au_convert_ctx,&out_buffer, MAX_AUDIO_FRAME_SIZE,(const uint8_t **)pFrame->data , pFrame->nb_samples);
*/
if( got_frame ) {
audio_swrCtx=swr_alloc();
audio_swrCtx=swr_alloc_set_opts(audio_swrCtx, // we're allocating a new context
AV_CH_LAYOUT_STEREO,//AV_CH_LAYOUT_STEREO, // out_ch_layout
AV_SAMPLE_FMT_S16, // out_sample_fmt
44100, // out_sample_rate
aCodecCtx->channel_layout, // in_ch_layout
aCodecCtx->sample_fmt, // in_sample_fmt
aCodecCtx->sample_rate, // in_sample_rate
0, // log_offset
NULL); // log_ctx
int ret=swr_init(audio_swrCtx);
int out_samples = av_rescale_rnd(swr_get_delay(audio_swrCtx, aCodecCtx->sample_rate) + 1024, 44100, aCodecCtx->sample_rate, AV_ROUND_UP);
ret=swr_convert(audio_swrCtx,&audio_buf, MAX_AUDIO_FRAME_SIZE,(const uint8_t **)frame.data ,frame.nb_samples);
data_size =
av_samples_get_buffer_size
(
&data_size,
av_get_channel_layout_nb_channels(AV_CH_LAYOUT_STEREO),
ret,
AV_SAMPLE_FMT_S16,
1
);
fwrite(audio_buf, 1, data_size, pFile);
//memcpy(audio_buf, frame.data[0], data_size);
swr_free(&audio_swrCtx);
}
if(data_size <= 0) {
/* No data yet, get more frames */
continue;
}
/* We have data, return it and come back for more later */
return data_size;
}
if(pkt.data) {
av_free_packet(&pkt);
}
if(quit) {
return -1;
}
if(packet_queue_get(&audioq, &pkt, 1) < 0) {
return -1;
}
audio_pkt_data = pkt.data;
audio_pkt_size = pkt.size;
}
}
void audio_callback(void *userdata, Uint8 *stream, int len) {
AVCodecContext *aCodecCtx = (AVCodecContext *)userdata;
int /*audio_len,*/ audio_size;
static uint8_t audio_buf[(MAX_AUDIO_FRAME_SIZE * 3) / 2];
static unsigned int audio_buf_size = 0;
static unsigned int audio_buf_index = 0;
//SDL_memset(stream, 0, len);
while(len > 0) {
if(audio_buf_index >= audio_buf_size) {
/* We have already sent all our data; get more */
audio_size = audio_decode_frame(aCodecCtx, audio_buf, audio_buf_size);
if(audio_size < 0) {
/* If error, output silence */
audio_buf_size = 1024; // arbitrary?
memset(audio_buf, 0, audio_buf_size);
} else {
audio_buf_size = audio_size;
}
audio_buf_index = 0;
}
audio_len = audio_buf_size - audio_buf_index;
if(audio_len > len) {
audio_len = len;
}
memcpy(stream, (uint8_t *)audio_buf , audio_len);
//SDL_MixAudio(stream,(uint8_t*)audio_buf,audio_len,SDL_MIX_MAXVOLUME);
fwrite(audio_buf, 1, audio_len, pFile_stream);
len -= audio_len;
stream += audio_len;
audio_buf_index += audio_len;
audio_len=len;
}
}
int main(int argc, char *argv[]) {
AVFormatContext *pFormatCtx = NULL;
int i, videoStream, audioStream;
AVCodecContext *pCodecCtx = NULL;
AVCodec *pCodec = NULL;
AVFrame *pFrame = NULL;
AVPacket packet;
int frameFinished;
//float aspect_ratio;
AVCodecContext *aCodecCtx = NULL;
AVCodec *aCodec = NULL;
SDL_Overlay *bmp = NULL;
SDL_Surface *screen = NULL;
SDL_Rect rect;
SDL_Event event;
SDL_AudioSpec wanted_spec, spec;
struct SwsContext *sws_ctx = NULL;
AVDictionary *videoOptionsDict = NULL;
AVDictionary *audioOptionsDict = NULL;
if(argc < 2) {
fprintf(stderr, "Usage: test <file>\n");
exit(1);
}
// Register all formats and codecs
av_register_all();
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER)) {
fprintf(stderr, "Could not initialize SDL - %s\n", SDL_GetError());
exit(1);
}
// Open video file
if(avformat_open_input(&pFormatCtx, argv[1]/*"file.mov"*/, NULL, NULL) != 0) {
return -1; // Couldn't open file
}
// Retrieve stream information
if(avformat_find_stream_info(pFormatCtx, NULL) < 0) {
return -1; // Couldn't find stream information
}
// Dump information about file onto standard error
av_dump_format(pFormatCtx, 0, argv[1], 0);
// Find the first video stream
videoStream = -1;
audioStream = -1;
for(i = 0; i < pFormatCtx->nb_streams; i++) {
if(pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO &&
videoStream < 0) {
videoStream = i;
}
if(pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO &&
audioStream < 0) {
audioStream = i;
}
}
if(videoStream == -1) {
return -1; // Didn't find a video stream
}
if(audioStream == -1) {
return -1;
}
aCodecCtx = pFormatCtx->streams[audioStream]->codec;
// Set audio settings from codec info
wanted_spec.freq = 44100;
wanted_spec.format = AUDIO_S16SYS;
wanted_spec.channels = av_get_channel_layout_nb_channels(AV_CH_LAYOUT_STEREO);;
wanted_spec.silence = 0;
wanted_spec.samples = 1024;
wanted_spec.callback = audio_callback;
wanted_spec.userdata = aCodecCtx;
if(SDL_OpenAudio(&wanted_spec, &spec) < 0) {
fprintf(stderr, "SDL_OpenAudio: %s\n", SDL_GetError());
return -1;
}
aCodec = avcodec_find_decoder(aCodecCtx->codec_id);
if(!aCodec) {
fprintf(stderr, "Unsupported codec!\n");
return -1;
}
avcodec_open2(aCodecCtx, aCodec, &audioOptionsDict);
// audio_st = pFormatCtx->streams[index]
packet_queue_init(&audioq);
SDL_PauseAudio(0);
// Get a pointer to the codec context for the video stream
pCodecCtx = pFormatCtx->streams[videoStream]->codec;
// Find the decoder for the video stream
pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
if(pCodec == NULL) {
fprintf(stderr, "Unsupported codec!\n");
return -1; // Codec not found
}
// Open codec
if(avcodec_open2(pCodecCtx, pCodec, &videoOptionsDict) < 0) {
return -1; // Could not open codec
}
// Allocate video frame
pFrame = av_frame_alloc();
// Make a screen to put our video
#ifndef __DARWIN__
screen = SDL_SetVideoMode(pCodecCtx->width, pCodecCtx->height, 0, 0);
#else
screen = SDL_SetVideoMode(pCodecCtx->width, pCodecCtx->height, 24, 0);
#endif
if(!screen) {
fprintf(stderr, "SDL: could not set video mode - exiting\n");
exit(1);
}
// Allocate a place to put our YUV image on that screen
bmp = SDL_CreateYUVOverlay(pCodecCtx->width,
pCodecCtx->height,
SDL_YV12_OVERLAY,
screen);
sws_ctx =
sws_getContext
(
pCodecCtx->width,
pCodecCtx->height,
pCodecCtx->pix_fmt,
pCodecCtx->width,
pCodecCtx->height,
PIX_FMT_YUV420P,
SWS_BILINEAR,
NULL,
NULL,
NULL
);
// Read frames and save first five frames to disk
i = 0;
while(av_read_frame(pFormatCtx, &packet) >= 0) {
// Is this a packet from the video stream?
if(packet.stream_index == videoStream) {
// Decode video frame
avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished,
&packet);
// Did we get a video frame?
if(frameFinished) {
SDL_LockYUVOverlay(bmp);
AVPicture pict;
pict.data[0] = bmp->pixels[0];
pict.data[1] = bmp->pixels[2];
pict.data[2] = bmp->pixels[1];
pict.linesize[0] = bmp->pitches[0];
pict.linesize[1] = bmp->pitches[2];
pict.linesize[2] = bmp->pitches[1];
// Convert the image into YUV format that SDL uses
sws_scale
(
sws_ctx,
(uint8_t const * const *)pFrame->data,
pFrame->linesize,
0,
pCodecCtx->height,
pict.data,
pict.linesize
);
SDL_UnlockYUVOverlay(bmp);
rect.x = 0;
rect.y = 0;
rect.w = pCodecCtx->width;
rect.h = pCodecCtx->height;
SDL_DisplayYUVOverlay(bmp, &rect);
SDL_Delay(40);
av_free_packet(&packet);
}
} else if(packet.stream_index == audioStream) {
packet_queue_put(&audioq, &packet);
} else {
av_free_packet(&packet);
}
// Free the packet that was allocated by av_read_frame
SDL_PollEvent(&event);
switch(event.type) {
case SDL_QUIT:
quit = 1;
SDL_Quit();
exit(0);
break;
default:
break;
}
}
// Free the YUV frame
av_free(pFrame);
/*swr_free(&audio_swrCtx);*/
// Close the codec
avcodec_close(pCodecCtx);
fclose(pFile);
fclose(pFile_stream);
// Close the video file
avformat_close_input(&pFormatCtx);
return 0;
}
</file>I hope to play normally.
-
ffmpeg massive error spamming from FritzBox rtsp stream
19 février 2019, par itzaiiroIm trying to offer a rtsp live TV stream via rtmp to my family, since the Fritz Box (which is offering the stream) has only 4 tuners -> at most 4 streams can be watched simultaneously.
Im using ffmpeg to prepare the stream as dash stream and send it to my rtmp nginx. When i run ffmpeg im experiencing heavy image and audio artifacts in the final stream and error spams of doom in the console. I couldn’t find anything specific to my case on google. I read on the internet that AVM barely implemented the rtsp protocoll enough to get it to work with vlc mediaplayer.launch param :
ffmpeg -i "rtsp://192.168.178.1:554/?avm=1&freq=114&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=1&pids=0,16,17,18,20,260,543,544,546,548,1621" -sn -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -b:v 500k -minrate 500k -maxrate 500k -bufsize 1000k -g 60 -s 640x360 -f flv rtmp://192.168.178.15/dash/pro_sieben_low -sn -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -b:v 1500k -minrate 1500k -maxrate 1500k -bufsize 3000k -g 60 -s 1280x720 -f flv rtmp://192.168.178.15/dash/pro_sieben_med -sn -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -b:v 5000k -minrate 5000k -maxrate 5000k -bufsize 10000k -g 60 -s 1920x1080 -f flv rtmp://192.168.178.15/dash/pro_sieben_high
ffmpeg output (windows) :
stored in pastebin
https://pastebin.com/p4HAyBi5Is there anyway to get this under control ? The original stream is running good with vlc, but its unwatchable after its out of ffmpeg.
Edit :
I was running/testing this on my windows machine, but my target for this task is a ubuntu 16.04 so here ffmpeg on target with pthread support :ffmpeg -i "rtsp://192.168.178.1:554/?avm=1&freq=114&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=1&pids=0,16,17,18,20,260,543,544,546,548,1621" -sn -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -b:v 500k -minrate 500k -maxrate 500k -bufsize 1000k -g 60 -s 640x360 -f flv rtmp://192.168.178.15/dash/pro_sieben_low -sn -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -b:v 1500k -minrate 1500k -maxrate 1500k -bufsize 3000k -g 60 -s 1280x720 -f flv rtmp://192.168.178.15/dash/pro_sieben_med -sn -vcodec libx264 -vprofile baseline -acodec aac -strict -2 -b:v 5000k -minrate 5000k -maxrate 5000k -bufsize 10000k -g 60 -s 1920x1080 -f flv rtmp://192.168.178.15/dash/pro_sieben_high
ffmpeg version 2.8.15-0ubuntu0.16.04.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
[mpeg2video @ 0x167cde0] Invalid frame dimensions 0x0.
Last message repeated 10 times
[rtsp @ 0x1627c20] Could not find codec parameters for stream 4 (Unknown: none ([5][0][0][0] / 0x0005)): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, rtsp, from 'rtsp://192.168.178.1:554/?avm=1&freq=114&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=1&pids=0,16,17,18,20,260,543,544,546,548,1621':
Metadata:
title : SatIPServer:1 0,0,4
Duration: N/A, start: 33786.528778, bitrate: N/A
Program 12101
Metadata:
service_name : ?▒RTL▒ Television
service_provider: ?Unitymedia
Program 12102
Metadata:
service_name : ?SAT.1
service_provider: ?Unitymedia
Program 12103
Metadata:
service_name : ?ProSieben
service_provider: ?Unitymedia
Stream #0:3: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], max. 15000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:2(deu): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
Stream #0:0(deu): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, 5.1(side), fltp, 384 kb/s (clean effects)
Stream #0:1(deu,deu): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006), 492x250
Stream #0:4: Unknown: none ([5][0][0][0] / 0x0005)
Program 12104
Metadata:
service_name : ?VOX
service_provider: ?Unitymedia
Program 12105
Metadata:
service_name : ?RTL2
service_provider: ?Unitymedia
Program 12106
Metadata:
service_name : ?kabel eins
service_provider: ?Unitymedia
Program 12107
Metadata:
service_name : ?▒S▒uper▒ RTL▒
service_provider: ?Unitymedia
Program 12109
Metadata:
service_name : ?ntv
service_provider: ?Unitymedia
Program 12113
Metadata:
service_name : ?ProSieben MAXX
service_provider: ?Unitymedia
Program 20116
Metadata:
service_name : ?SIXX
service_provider: ?Unitymedia
[libx264 @ 0x182b140] using SAR=1/1
[libx264 @ 0x182b140] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x182b140] profile Constrained Baseline, level 3.0
[libx264 @ 0x182b140] 264 - core 148 r2643 5c65704 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=60 keyint_min=6 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=cbr mbtree=1 bitrate=500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=500 vbv_bufsize=1000 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
[libx264 @ 0x16e03c0] using SAR=1/1
[libx264 @ 0x16e03c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x16e03c0] profile Constrained Baseline, level 3.1
[libx264 @ 0x16e03c0] 264 - core 148 r2643 5c65704 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=60 keyint_min=6 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=cbr mbtree=1 bitrate=1500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=1500 vbv_bufsize=3000 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
[libx264 @ 0x16cc880] using SAR=1/1
[libx264 @ 0x16cc880] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0x16cc880] profile Constrained Baseline, level 4.0
[libx264 @ 0x16cc880] 264 - core 148 r2643 5c65704 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=60 keyint_min=6 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=cbr mbtree=1 bitrate=5000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=5000 vbv_bufsize=10000 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://192.168.178.15/dash/pro_sieben_low':
Metadata:
title : SatIPServer:1 0,0,4
encoder : Lavf56.40.101
Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 640x360 [SAR 1:1 DAR 16:9], q=-1--1, 500 kb/s, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc56.60.100 libx264
Stream #0:1(deu): Audio: aac ([10][0][0][0] / 0x000A), 48000 Hz, 5.1(side), fltp, 128 kb/s (clean effects)
Metadata:
encoder : Lavc56.60.100 aac
Output #1, flv, to 'rtmp://192.168.178.15/dash/pro_sieben_med':
Metadata:
title : SatIPServer:1 0,0,4
encoder : Lavf56.40.101
Stream #1:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 1500 kb/s, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc56.60.100 libx264
Stream #1:1(deu): Audio: aac ([10][0][0][0] / 0x000A), 48000 Hz, 5.1(side), fltp, 128 kb/s (clean effects)
Metadata:
encoder : Lavc56.60.100 aac
Output #2, flv, to 'rtmp://192.168.178.15/dash/pro_sieben_high':
Metadata:
title : SatIPServer:1 0,0,4
encoder : Lavf56.40.101
Stream #2:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 5000 kb/s, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc56.60.100 libx264
Stream #2:1(deu): Audio: aac ([10][0][0][0] / 0x000A), 48000 Hz, 5.1(side), fltp, 128 kb/s (clean effects)
Metadata:
encoder : Lavc56.60.100 aac
Stream mapping:
Stream #0:3 -> #0:0 (mpeg2video (native) -> h264 (libx264))
Stream #0:0 -> #0:1 (ac3 (native) -> aac (native))
Stream #0:3 -> #1:0 (mpeg2video (native) -> h264 (libx264))
Stream #0:0 -> #1:1 (ac3 (native) -> aac (native))
Stream #0:3 -> #2:0 (mpeg2video (native) -> h264 (libx264))
Stream #0:0 -> #2:1 (ac3 (native) -> aac (native))
Press [q] to stop, [?] for help
RTP: missed 2137 packets.0 q=26.0 q=23.0 size= 238kB time=00:00:04.91 bitrate= 397.3kbits/s
[rtsp @ 0x1627c20] PES packet size mismatch
[mpeg2video @ 0x16d72c0] invalid mb type in I Frame at 0 16
[mpeg2video @ 0x16d72c0] invalid mb type in I Frame at 0 17
[mpeg2video @ 0x16d72c0] invalid mb type in I Frame at 0 18
[mpeg2video @ 0x16d72c0] invalid mb type in I Frame at 0 19
[mpeg2video @ 0x16d72c0] ac-tex damaged at 0 20
[mpeg2video @ 0x16d72c0] ac-tex damaged at 0 21
[mpeg2video @ 0x16d72c0] ac-tex damaged at 0 22
[mpeg2video @ 0x16d72c0] ac-tex damaged at 0 23
[mpeg2video @ 0x16d72c0] ac-tex damaged at 17 11
[mpeg2video @ 0x16d72c0] ac-tex damaged at 0 24
[mpeg2video @ 0x16d72c0] ac-tex damaged at 0 25
[mpeg2video @ 0x16d72c0] ac-tex damaged at 0 26
[mpeg2video @ 0x16d72c0] ac-tex damaged at 0 27
[mpeg2video @ 0x16d72c0] invalid mb type in I Frame at 0 31
[mpeg2video @ 0x16d72c0] invalid mb type in I Frame at 0 32
[mpeg2video @ 0x16d72c0] invalid mb type in I Frame at 0 33
[mpeg2video @ 0x16d72c0] invalid mb type in I Frame at 0 34
[mpeg2video @ 0x16d72c0] invalid mb type in I Frame at 0 35
[mpeg2video @ 0x16d72c0] Warning MVs not available
[mpeg2video @ 0x16d72c0] concealing 1125 DC, 1125 AC, 1125 MV errors in I frame
RTP: missed 11 packets
RTP: missed 37 packets
[ac3 @ 0x1676bc0] exponent out-of-range
[ac3 @ 0x1676bc0] error decoding the audio block
[ac3 @ 0x1676bc0] frame sync error
Error while decoding stream #0:0: Invalid data found when processing input
[ac3 @ 0x1676bc0] exponent out-of-range
[ac3 @ 0x1676bc0] error decoding the audio block
RTP: missed 21 packets
RTP: missed 32 packets
[mpeg2video @ 0x16d72c0] ac-tex damaged at 1 4
[mpeg2video @ 0x16d72c0] Warning MVs not available
[mpeg2video @ 0x16d72c0] concealing 1080 DC, 1080 AC, 1080 MV errors in B frame
[mpeg2video @ 0x16d72c0] 00 motion_type at 21 27
[mpeg2video @ 0x16d72c0] 00 motion_type at 2 26
[mpeg2video @ 0x16d72c0] 00 motion_type at 0 27
[mpeg2video @ 0x16d72c0] invalid cbp -1 at 2 1
[mpeg2video @ 0x16d72c0] 00 motion_type at 5 2
[mpeg2video @ 0x16d72c0] skip with previntra
[mpeg2video @ 0x16d72c0] 00 motion_type at 2 4
[mpeg2video @ 0x16d72c0] slice mismatch
[mpeg2video @ 0x16d72c0] 00 motion_type at 1 6
[mpeg2video @ 0x16d72c0] ac-tex damaged at 3 7
[mpeg2video @ 0x16d72c0] slice mismatch
[mpeg2video @ 0x16d72c0] 00 motion_type at 37 9
[mpeg2video @ 0x16d72c0] 00 motion_type at 1 10
[mpeg2video @ 0x16d72c0] mb incr damaged
[mpeg2video @ 0x16d72c0] 00 motion_type at 1 31
[mpeg2video @ 0x16d72c0] 00 motion_type at 5 32
[mpeg2video @ 0x16d72c0] 00 motion_type at 1 33
[mpeg2video @ 0x16d72c0] mb incr damaged
[mpeg2video @ 0x16d72c0] ac-tex damaged at 26 35
[mpeg2video @ 0x16d72c0] Warning MVs not available
[mpeg2video @ 0x16d72c0] concealing 945 DC, 945 AC, 945 MV errors in B frame
[rtsp @ 0x1627c20] PES packet size mismatchze= 294kB time=00:00:05.27 bitrate= 457.1kbits/s
[ac3 @ 0x1676bc0] frame sync error
Error while decoding stream #0:0: Invalid data found when processing input
[ac3 @ 0x1676bc0] exponent out-of-range
[ac3 @ 0x1676bc0] error decoding the audio block
[ac3 @ 0x1676bc0] frame sync error
Error while decoding stream #0:0: Invalid data found when processing input
RTP: missed 38 packets25.0 q=26.0 q=22.0 size= 320kB time=00:00:11.18 bitrate= 234.3kbits/s
RTP: missed 18 packets
RTP: missed 9 packets
RTP: missed 21 packets
RTP: missed 9 packets
[rtsp @ 0x1627c20] PES packet size mismatch
[ac3 @ 0x1676bc0] exponent out-of-range
[ac3 @ 0x1676bc0] error decoding the audio block
[ac3 @ 0x1676bc0] frame sync error
Error while decoding stream #0:0: Invalid data found when processing input
[ac3 @ 0x1676bc0] bandwidth code = 63 > 60
[ac3 @ 0x1676bc0] error decoding the audio block
RTP: missed 13 packets
[mpeg2video @ 0x16d72c0] mb incr damaged
[mpeg2video @ 0x16d72c0] ac-tex damaged at 3 6
[mpeg2video @ 0x16d72c0] 00 motion_type at 1 16
[mpeg2video @ 0x16d72c0] ac-tex damaged at 0 17
[mpeg2video @ 0x16d72c0] 00 motion_type at 5 21
[mpeg2video @ 0x16d72c0] 00 motion_type at 3 27
[mpeg2video @ 0x16d72c0] invalid cbp -1 at 7 32
[mpeg2video @ 0x16d72c0] ac-tex damaged at 8 32
[mpeg2video @ 0x16d72c0] slice mismatch
Last message repeated 2 times
[mpeg2video @ 0x16d72c0] Warning MVs not available
[mpeg2video @ 0x16d72c0] concealing 810 DC, 810 AC, 810 MV errors in P frame
RTP: missed 44 packets
[rtsp @ 0x1627c20] PES packet size mismatch
[ac3 @ 0x1676bc0] frame sync error
Error while decoding stream #0:0: Invalid data found when processing input
[ac3 @ 0x1676bc0] exponent out-of-range0 size= 338kB time=00:00:11.43 bitrate= 242.2kbits/s
[ac3 @ 0x1676bc0] error decoding the audio block
RTP: missed 35 packets
Last message repeated 1 times
RTP: missed 31 packets
[ac3 @ 0x1676bc0] frame sync error
Error while decoding stream #0:0: Invalid data found when processing input
[ac3 @ 0x1676bc0] exponent out-of-range
[ac3 @ 0x1676bc0] error decoding the audio block
[ac3 @ 0x1676bc0] frame sync error
Error while decoding stream #0:0: Invalid data found when processing input
RTP: missed 48 packets
[mpeg2video @ 0x16d72c0] ac-tex damaged at 5 23
[mpeg2video @ 0x16d72c0] mb incr damaged
[mpeg2video @ 0x16d72c0] 00 motion_type at 17 24
[mpeg2video @ 0x16d72c0] slice mismatch
Last message repeated 1 times
[mpeg2video @ 0x16d72c0] ac-tex damaged at 5 27
[mpeg2video @ 0x16d72c0] skip with previntra
[mpeg2video @ 0x16d72c0] 00 motion_type at 15 29
[mpeg2video @ 0x16d72c0] 00 motion_type at 8 31
[mpeg2video @ 0x16d72c0] 00 motion_type at 13 32
[mpeg2video @ 0x16d72c0] 00 motion_type at 22 33
[mpeg2video @ 0x16d72c0] 00 motion_type at 20 34
[mpeg2video @ 0x16d72c0] 00 motion_type at 17 35
[mpeg2video @ 0x16d72c0] Warning MVs not available
[mpeg2video @ 0x16d72c0] concealing 543 DC, 543 AC, 543 MV errors in B frame
[mpeg2video @ 0x16d72c0] 00 motion_type at 16 1
[mpeg2video @ 0x16d72c0] ac-tex damaged at 11 13
[mpeg2video @ 0x16d72c0] invalid mb type in P Frame at 4 7
[mpeg2video @ 0x16d72c0] 00 motion_type at 2 8
[mpeg2video @ 0x16d72c0] invalid cbp 0 at 0 19
[mpeg2video @ 0x16d72c0] invalid cbp 0 at 0 20
[mpeg2video @ 0x16d72c0] 00 motion_type at 9 21
[mpeg2video @ 0x16d72c0] ac-tex damaged at 2 22
[mpeg2video @ 0x16d72c0] 00 motion_type at 10 23
[mpeg2video @ 0x16d72c0] slice mismatch
[mpeg2video @ 0x16d72c0] invalid mb type in P Frame at 1 25
[mpeg2video @ 0x16d72c0] invalid cbp 0 at 38 26
[mpeg2video @ 0x16d72c0] invalid mb type in P Frame at 3 27
[mpeg2video @ 0x16d72c0] invalid mb type in P Frame at 22 28
[mpeg2video @ 0x16d72c0] 00 motion_type at 16 29
[mpeg2video @ 0x16d72c0] ac-tex damaged at 5 30
[mpeg2video @ 0x16d72c0] 00 motion_type at 14 31
[mpeg2video @ 0x16d72c0] ac-tex damaged at 2 32
[mpeg2video @ 0x16d72c0] invalid mb type in P Frame at 19 9
[mpeg2video @ 0x16d72c0] invalid mb type in P Frame at 11 10
[mpeg2video @ 0x16d72c0] ac-tex damaged at 13 11
[mpeg2video @ 0x16d72c0] ac-tex damaged at 8 12
[mpeg2video @ 0x16d72c0] 00 motion_type at 33 13
[mpeg2video @ 0x16d72c0] ac-tex damaged at 8 14
[mpeg2video @ 0x16d72c0] invalid cbp -1 at 6 15
[mpeg2video @ 0x16d72c0] invalid cbp -1 at 15 19
[mpeg2video @ 0x16d72c0] 00 motion_type at 9 18
[mpeg2video @ 0x16d72c0] mb incr damaged
[mpeg2video @ 0x16d72c0] invalid cbp -1 at 15 21
[mpeg2video @ 0x16d72c0] 00 motion_type at 13 21
[mpeg2video @ 0x16d72c0] invalid cbp 0 at 16 22
[mpeg2video @ 0x16d72c0] ac-tex damaged at 5 23
[mpeg2video @ 0x16d72c0] ac-tex damaged at 4 24
[mpeg2video @ 0x16d72c0] mb incr damaged
[mpeg2video @ 0x16d72c0] 00 motion_type at 7 26
[mpeg2video @ 0x16d72c0] slice mismatch
[mpeg2video @ 0x16d72c0] 00 motion_type at 9 13
[mpeg2video @ 0x16d72c0] ac-tex damaged at 44 14
[mpeg2video @ 0x16d72c0] invalid cbp 0 at 2 15
[mpeg2video @ 0x16d72c0] mb incr damaged
Last message repeated 1 times
[mpeg2video @ 0x16d72c0] 00 motion_type at 34 18
[mpeg2video @ 0x16d72c0] 00 motion_type at 15 19
[mpeg2video @ 0x16d72c0] mb incr damaged
[mpeg2video @ 0x16d72c0] 00 motion_type at 8 21
[mpeg2video @ 0x16d72c0] ac-tex damaged at 14 22
[mpeg2video @ 0x16d72c0] invalid cbp -1 at 9 23
[mpeg2video @ 0x16d72c0] invalid cbp 0 at 4 24
[mpeg2video @ 0x16d72c0] mb incr damaged
[mpeg2video @ 0x16d72c0] slice mismatch
Last message repeated 1 times
[mpeg2video @ 0x16d72c0] mb incr damaged
[mpeg2video @ 0x16d72c0] ac-tex damaged at 25 29
[mpeg2video @ 0x16d72c0] invalid cbp 0 at 14 30
[mpeg2video @ 0x16d72c0] mb incr damaged
Last message repeated 1 times
[mpeg2video @ 0x16d72c0] 00 motion_type at 35 33
[mpeg2video @ 0x16d72c0] slice mismatch
[mpeg2video @ 0x16d72c0] Warning MVs not available
[mpeg2video @ 0x16d72c0] concealing 1350 DC, 1350 AC, 1350 MV errors in P frame
[flv @ 0x16d7c40] Failed to update header with correct duration.:00:12.12 bitrate= 241.4kbits/s
[flv @ 0x16d7c40] Failed to update header with correct filesize.
[flv @ 0x16df5a0] Failed to update header with correct duration.
[flv @ 0x16df5a0] Failed to update header with correct filesize.
[flv @ 0x16cbe00] Failed to update header with correct duration.
[flv @ 0x16cbe00] Failed to update header with correct filesize.
frame= 136 fps= 12 q=-1.0 Lq=-1.0 q=-1.0 size= 633kB time=00:00:13.24 bitrate= 391.8kbits/s
video:7049kB audio:272kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x182b140] frame I:4 Avg QP:19.84 size: 33269
[libx264 @ 0x182b140] frame P:132 Avg QP:21.93 size: 3136
[libx264 @ 0x182b140] mb I I16..4: 6.9% 0.0% 93.1%
[libx264 @ 0x182b140] mb P I16..4: 0.1% 0.0% 0.7% P16..4: 32.0% 11.6% 4.4% 0.0% 0.0% skip:51.1%
[libx264 @ 0x182b140] coded y,uvDC,uvAC intra: 91.1% 88.6% 67.5% inter: 14.8% 20.2% 1.5%
[libx264 @ 0x182b140] i16 v,h,dc,p: 35% 15% 3% 47%
[libx264 @ 0x182b140] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 19% 9% 6% 7% 8% 7% 7% 7%
[libx264 @ 0x182b140] i8c dc,h,v,p: 45% 20% 28% 7%
[libx264 @ 0x182b140] ref P L0: 80.5% 11.2% 8.4%
[libx264 @ 0x182b140] kb/s:369.61
[libx264 @ 0x16e03c0] frame I:4 Avg QP:19.81 size: 77367
[libx264 @ 0x16e03c0] frame P:132 Avg QP:21.64 size: 9825
[libx264 @ 0x16e03c0] mb I I16..4: 16.2% 0.0% 83.8%
[libx264 @ 0x16e03c0] mb P I16..4: 0.6% 0.0% 1.2% P16..4: 34.1% 9.5% 2.9% 0.0% 0.0% skip:51.8%
[libx264 @ 0x16e03c0] coded y,uvDC,uvAC intra: 76.8% 77.3% 41.8% inter: 11.9% 20.4% 0.7%
[libx264 @ 0x16e03c0] i16 v,h,dc,p: 38% 18% 7% 37%
[libx264 @ 0x16e03c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 22% 10% 5% 7% 7% 7% 6% 6%
[libx264 @ 0x16e03c0] i8c dc,h,v,p: 47% 21% 26% 6%
[libx264 @ 0x16e03c0] ref P L0: 80.8% 12.1% 7.1%
[libx264 @ 0x16e03c0] kb/s:1085.42
[libx264 @ 0x16cc880] frame I:4 Avg QP:15.79 size:181630
[libx264 @ 0x16cc880] frame P:132 Avg QP:18.21 size: 32848
[libx264 @ 0x16cc880] mb I I16..4: 13.7% 0.0% 86.3%
[libx264 @ 0x16cc880] mb P I16..4: 1.3% 0.0% 2.7% P16..4: 36.0% 14.2% 4.4% 0.0% 0.0% skip:41.4%
[libx264 @ 0x16cc880] coded y,uvDC,uvAC intra: 72.4% 70.6% 41.8% inter: 17.3% 24.9% 1.5%
[libx264 @ 0x16cc880] i16 v,h,dc,p: 33% 21% 6% 39%
[libx264 @ 0x16cc880] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 23% 9% 5% 8% 7% 7% 6% 5%
[libx264 @ 0x16cc880] i8c dc,h,v,p: 44% 21% 27% 8%
[libx264 @ 0x16cc880] ref P L0: 80.3% 12.7% 7.0%
[libx264 @ 0x16cc880] kb/s:3420.59