
Recherche avancée
Médias (39)
-
Stereo master soundtrack
17 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
ED-ME-5 1-DVD
11 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
1,000,000
27 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Demon Seed
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
The Four of Us are Dying
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Corona Radiata
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (46)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
Contribute to documentation
13 avril 2011Documentation is vital to the development of improved technical capabilities.
MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
To contribute, register to the project users’ mailing (...)
Sur d’autres sites (5990)
-
avcodec/evc_parser : Added parser implementation for EVC format
15 juin 2023, par Dawid Kozinskiavcodec/evc_parser : Added parser implementation for EVC format
Added constants definitions for EVC parser
Provided NAL units parsing following ISO_IEC_23094-1
EVC parser registration
Signed-off-by : Dawid Kozinski <d.kozinski@samsung.com>
-
FFmpeg avcodec C++ implementation producing distorted frames while converting YUV frame to jpg
23 juin 2023, par CodeRhynoI have a YUV frame that I need to convert to jpg. For the frames with resolution 1920x1080 or 2560x1080 or 2560x880 or 640x360, I'm easily able to encode and create a jpg using the following code. The frames with a resolution of 1512x982 with 12 bit per pixel I am getting a distorted image using the same code. Using the following ffmpeg command, I am able to get perfect looking jpg image from the same 1512x982 resolution YUV file :


fmpeg -y -s:v 1512x982 -pix_fmt yuv420p -i 0.yuv 0.jpg



Please help with the code part, as in what I may be missing here.




#include "ffmpeg-helper.h"

AVFrame * FFmpegHelper::allocPicture(enum AVPixelFormat pix_fmt, int width, int height)
{
 // Allocate a frame
 AVFrame * frame = av_frame_alloc();

 if (frame == NULL) {
 return NULL;
 }

 frame -> width = width;
 frame -> height = height;
 frame -> format = pix_fmt;
 int ret = av_frame_get_buffer(frame, 0);

 if (ret < 0) {
 return NULL;
 }
 ret = av_frame_make_writable(frame);
 if (ret < 0) {
 return NULL;
 }
 return frame;
}

void FFmpegHelper::frameConversion(char * y, char * u, char * v,
 int srcWidth, int srcHeight, string filePath)
{
 avcodec_register_all();
 AVFrame * src = allocPicture(AVPixelFormat::AV_PIX_FMT_YUV420P, srcWidth, srcHeight);
 src -> data[0] = (uint8_t * ) y;
 src -> data[1] = (uint8_t * ) u;
 src -> data[2] = (uint8_t * ) v;
 src -> pts = 1;

 auto encoderContext = getEncoderContext(AV_CODEC_ID_MJPEG, srcWidth, srcHeight);
 if (encoderContext == NULL) return;

 FILE * frameFile = fopen(filePath.c_str(), "ab+");

 auto pkt = av_packet_alloc();
 encode(encoderContext, src, pkt, frameFile);
 encode(encoderContext, NULL, pkt, frameFile);

 // memory cleanup
 avcodec_free_context( & encoderContext);
 av_packet_unref(pkt);
 av_frame_free( & src);
 fclose(frameFile);
}

void FFmpegHelper::encode(AVCodecContext * enc_ctx, AVFrame * frame, AVPacket * pkt, FILE * outfile)
{
 /* send the frame to the encoder */
 if (frame == NULL) {
 return;
 }
 int ret = avcodec_send_frame(enc_ctx, frame);
 if (ret < 0) {
 return;
 }
 ret = avcodec_receive_packet(enc_ctx, pkt);
 if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) return;
 if (ret < 0) return;
 fwrite(pkt -> data, pkt -> size, 1, outfile);

}

AVCodecContext * FFmpegHelper::getEncoderContext(AVCodecID extension, int width, int height)
{
 auto codec = avcodec_find_encoder(extension);
 if (!codec) {
 return NULL;
 }
 auto encoderContext = avcodec_alloc_context3(codec);
 encoderContext -> width = width;
 encoderContext -> height = height;
 encoderContext -> pix_fmt = AVPixelFormat::AV_PIX_FMT_YUVJ420P;
 AVRational frameRate = {
 1,
 1
 };
 encoderContext -> time_base = frameRate;
 if (avcodec_open2(encoderContext, codec, NULL) < 0) {
 return;
 }

 return encoderContext;
}



The code starts from the function 'frameConversion' where I am providing data for Y, U, and V along with frame dimensions and file path to write.


-
avcodec/cbs : add cbs implementation for H266/VVC
21 mars 2023, par Nuo Miavcodec/cbs : add cbs implementation for H266/VVC
Add CodedBitstreamContext to parse VPS,SPS,PPS in VVC nal units.
Implement parsing and writing of SPS,PPS,VPS,PH,AUD,SEI and slices.
Add ff_cbs_type_h266 to cbs types tables and AV_CODEC_ID_H266
to cbs codec ids.Co-authored-by : Thomas Siedel <thomas.ff@spin-digital.com>
Signed-off-by : James Almer <jamrial@gmail.com>