
Recherche avancée
Autres articles (36)
-
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 ) (...) -
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.
Sur d’autres sites (6933)
-
ffmpeg returns "Invalid data found when processing input" when creating RTSP stream from H.264
22 mars 2019, par Ahm23I’m trying to create an RTSP stream from an H.264 source on Ubuntu using ffmpeg, however, I keep getting the error prompt "Invalid data found when processing input". I’m working on an AWS DeepLens.
There seem to be some solutions on the internet for similar problems but none of them seem to be working.
Executed Command :
ffmpeg -loglevel error -re -f concat -safe 0 -i /opt/awscam/out/ch1_out.h264 -c:v copy -flags +global_header -rtsp_transport tcp -f rtsp "RTSP"
Where "RTSP" is the rtsp path/url.
-
libav C++ sw_scale returns variable byte size of BGR24 buffer
6 mars 2021, par igorI'm trying to convert my local /dev/video0 cam to BGR24 format. It works if I resize the image (although not 100% of the time, more like 85% of the time), but I'd like to keep the same size as input video.


I initialize BGR image like so including the sws context :


AVPixelFormat outputPixFormat = AV_PIX_FMT_BGR24;

 AVFrame* pFrameBGR = av_frame_alloc();
 pFrameBGR->width = decoder->video_codec_context->width;
 pFrameBGR->height = decoder->video_codec_context->height;
 pFrameBGR->format = outputPixFormat;

 int alloRet = av_image_alloc(pFrameBGR->data, pFrameBGR->linesize, decoder->video_codec_context->width, decoder->video_codec_context->height, outputPixFormat, 1);
 if (alloRet < 0) {
 logging("failed to allocate image");
 return -1;
 }

 struct SwsContext *sws_ctx = NULL;

 sws_ctx = sws_getContext(decoder->video_codec_context->width,
 decoder->video_codec_context->height,
 decoder->video_codec_context->pix_fmt,
 decoder->video_codec_context->width,
 decoder->video_codec_context->height,
 outputPixFormat,
 SWS_DIRECT_BGR,
 0,
 0,
 0
 );



This is the portion of my decoding loop :


int response = avcodec_send_packet(pCodecContext, pPacket);
 if (response < 0) {
 logging("Error while sending a packet to decoder: %s", av_err2str(response));
 return response;
 }

 while (response >= 0) {
 response = avcodec_receive_frame(pCodecContext, pFrame);
 if (response == AVERROR(EAGAIN) || response == AVERROR_EOF) {
 break;
 } else if (response < 0) {
 logging("Error while receiving a frame from the decoder: %s", av_err2str(response));
 return response;
 }
 if (response >= 0) {

 sws_scale(sws_ctx, (uint8_t const * const *)pFrame->data, pFrame->linesize, 0, pCodecContext->height, pFrameBGR->data, pFrameBGR->linesize);




THe question is how to copy the plane of AVFrame into a buffer
:

size_t rgb_size = av_image_get_buffer_size(AV_PIX_FMT_BGR24, bgrFrame->width, bgrFrame->height, 1);

 uint8_t *dst_data;
 dst_data = (uint8_t *)(av_malloc(rgb_size));

 av_image_copy_to_buffer(dst_data, rgb_size, (const uint8_t* const *)bgrFrame->data, bgrFrame->linesize, AV_PIX_FMT_BGR24, bgrFrame->width, bgrFrame->height, 1);




If I try to save to file the BGR image is correctly copied :


char filebuf[256];
snprintf(filebuf, sizeof filebuf, "%s%d%s", "out_", pPacket->dts, ".rgb");
std::FILE *output=fopen(filebuf,"wb+"); 

fwrite(bgrFrame->data[0],(pFrame->width)*(pFrame->height)*3,1,output); 
std::fclose(output);



So it looks like my copy to buffer function is faulty, but I can figure out what's wrong with it :


uint8_t *dst_data;
 dst_data = (uint8_t *)(av_malloc(rgb_size));

 av_image_copy_to_buffer(dst_data, rgb_size, (const uint8_t* const *)bgrFrame->data, bgrFrame->linesize, AV_PIX_FMT_BGR24, bgrFrame->width, bgrFrame->height, 1);



-
ffmpeg avformat_open_input always returns "Protocol not found" rv=(-1330794744)
7 juin 2019, par bzivkovicTrying to get ffmpeg working in Visual Studio 2010. So far all ffmpeg headers and libs are loaded, no error or warning occurs.
avcodec_register_all();
AVFormatContext *pFormatCtx = NULL;
char errbuf[256];
pFormatCtx = avformat_alloc_context();
int rv = avformat_open_input(&pFormatCtx, "myfile.ext", NULL, NULL);
if (rv!=0){
av_strerror(rv, errbuf, sizeof(errbuf));
}The problem is, avformat_open_input always returning -1330794744 (errbuf="Protocol not found"). Tried x86 & x64 headers and libs on 32bit XP and 64bit W7. Whatever I put for "myfile.ext" (tried "file1.avi", "file=c :\file1.avi", "http://www.someweb.com/file1.avi", and even empty char* "") response is always "Protocol not found". Any ideas ?