
Recherche avancée
Autres articles (107)
-
Diogene : création de masques spécifiques de formulaires d’édition de contenus
26 octobre 2010, parDiogene est un des plugins ? SPIP activé par défaut (extension) lors de l’initialisation de MediaSPIP.
A quoi sert ce plugin
Création de masques de formulaires
Le plugin Diogène permet de créer des masques de formulaires spécifiques par secteur sur les trois objets spécifiques SPIP que sont : les articles ; les rubriques ; les sites
Il permet ainsi de définir en fonction d’un secteur particulier, un masque de formulaire par objet, ajoutant ou enlevant ainsi des champs afin de rendre le formulaire (...) -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)
Sur d’autres sites (8563)
-
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);



-
Révision 96228 : version 2.13.2 : maj de la lib getid3 en version 1.9.12 + ajout de getid3 et mejs...
28 mars 2016, par brunobergot@gmail.com