
Recherche avancée
Autres articles (53)
-
Use, discuss, criticize
13 avril 2011, parTalk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
A discussion list is available for all exchanges between users. -
MediaSPIP Player : problèmes potentiels
22 février 2011, parLe lecteur ne fonctionne pas sur Internet Explorer
Sur Internet Explorer (8 et 7 au moins), le plugin utilise le lecteur Flash flowplayer pour lire vidéos et son. Si le lecteur ne semble pas fonctionner, cela peut venir de la configuration du mod_deflate d’Apache.
Si dans la configuration de ce module Apache vous avez une ligne qui ressemble à la suivante, essayez de la supprimer ou de la commenter pour voir si le lecteur fonctionne correctement : /** * GeSHi (C) 2004 - 2007 Nigel McNie, (...) -
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
Sur d’autres sites (5721)
-
ffmpeg encoded h.264 frame rate is slightly wrong
26 juillet 2021, par TimmmmI have some code to encode video to an MP4/H.264 file. It's basically the same as this example but encoding to MP4/H.264 with no audio.


I set the
time_base
/framerate
like this :

codecContext->time_base = AVRational{1, 30};
 codecContext->framerate = AVRational{30, 1};
...
 stream->time_base = codecContext->time_base;



And it all works fine (the quality is terrible but that's another issue). However the weird thing is that the frame rate comes out at 30.303030, not 30. VLC and ffmpeg itself both confirmed this.


30.303030 is 30 * 100/99 but I can't see why that would ever happen.


I did find a few other people reporting this odd frame rate here, here and here but nobody seems to have worked out why.


What's up with that frame rate ?


Edit : One of those questions led me to MediaInfo, which actually does report the frame rate as 30.000 FPS, whereas FFMPEG reports 30.30, which is presumably rounded from VLC's value of 30.303030.


Edit 2 : Aha ! I think it's because I encode exactly 100 frames. I wonder if VLC and ffmpeg calculate the frame rate by dividing the total number of frames by the difference between the presentation times of the first and last frames. That would definitely yield 30.303030 :


100 / (99/30 - 0/30) = 30.303030


I confirmed this by encoding 200 frames and the frame rate changes to 30.15. So this is possibly just a bug in the frame rate calculation of VLC and ffmpeg.


-
FFmpeg overwrite an AVPacket
26 janvier 2019, par Alejandro RamírezHello guys I am working with video. I wan to encrypt the I-frames of one video compressed in
H.264
. So I get theAVPacket
from the video and compare if(AVPacket.flags & AV_PKT_FLAG_KEY)
to know if the packet has an I frame, but when I try to print theAVPacket.data
I don’t have any information to encrypt.
Where can I get the information regarding toI-frame
. ahead a put my code, thank you.#include <iostream>
extern "C" {
#include <libavcodec></libavcodec>avcodec.h>
#include <libavformat></libavformat>avformat.h>
#include <libswscale></libswscale>swscale.h>
#include <libavutil></libavutil>avutil.h>
}
#define INBUF_SIZE 4096
//#define AV_INPUT_BUFFER_PADDING_SIZE 32
int main (int argc, char * argv[])
{
//av_register_all();//omit
//revisar el número de argumentos en el video
AVFormatContext *pFormatCtx = NULL;
AVCodec *dec = NULL;
AVCodecContext *pCodecCtx = NULL;
AVStream *st = NULL;
AVDictionary *opts = NULL;
AVFrame *frame;
AVPacket avpkt;
uint8_t inbuf [INBUF_SIZE + AV_INPUT_BUFFER_PADDING_SIZE];
FILE *f;
int frame_count;
int video_stream_index = -1;
//av_init_packet (&avpkt);
memset (inbuf + INBUF_SIZE, 0, AV_INPUT_BUFFER_PADDING_SIZE);
if (avformat_open_input (&pFormatCtx, argv[1], NULL, NULL) != 0)
return -1;
if (avformat_find_stream_info (pFormatCtx, NULL) < 0)
return -1;
//video_stream_index = av_find_best_stream (pFormatCtx,AVMEDIA_TYPE_VIDEO, -1, -1, &dec,0);
video_stream_index = av_find_best_stream (pFormatCtx,AVMEDIA_TYPE_VIDEO, -1, -1, &dec,0);
if ( video_stream_index < 0)
return -1;
std::cout << "video_stream; " << video_stream_index << "\n";
st = pFormatCtx -> streams [video_stream_index];
std::cout << "number of frames " << st -> nb_frames << "\n";
std::cout << "event_flags " << st -> event_flags << "\n";
//pCodecCtx = st -> codec;//deprecated
dec = avcodec_find_decoder (st -> codecpar -> codec_id);
std::cout << "codec_id: " << st -> codecpar -> codec_id << "\n";
std::cout << "AV_CODEC_ID_H264: " << AV_CODEC_ID_H264 << "\n";
if (!dec)
return -1;
pCodecCtx = avcodec_alloc_context3 (dec);
if (!pCodecCtx)
return -1;
//av_dict_set (&opts, "refcounted_frames", "0", 0);
avcodec_parameters_to_context (pCodecCtx, st -> codecpar);
std::cout << "todo bien \n";
if (avcodec_open2 (pCodecCtx, dec, &opts) < 0)
return -1;
/*************hasta aqui buen codigo*********************************************/
frame = av_frame_alloc ();
if (!frame)
return -1;
av_init_packet (&avpkt);
avpkt.data = NULL;
avpkt.size = 0;
f = fopen (argv[1], "r");
int times = 1;
while (av_read_frame (pFormatCtx, &avpkt) >= 0){
AVPacket oripkt = avpkt;
if (oripkt.stream_index == video_stream_index){
if (oripkt.flags & AV_PKT_FLAG_KEY){
std::cout << "times: " << times ++ << "\n";
std::cout << "avpkt.flags: " << oripkt.flags << "\n";
std::cout << "tam avpkt.data: " << sizeof(oripkt.data) << "\n";
std::cout << "tam avpkt.data: " << oripkt.data << "\n";
std::cout << "oripkt.size: " << oripkt.size << "\n";
std::cout << "oripkt.side_date_eme: " << oripkt.side_data_elems << "\n";
if (!oripkt.data)
std::cout << "no tengo dinero \n";
}
}
}
std::cout << "Fin del programa " << "\n";
}
</iostream> -
Android video conversion [on hold]
28 octobre 2013, par Jeffrey GrimaI am a student who is doing his bachelors degree thesis. I need to implement a mobile application to convert video files from one format to another and also using a mobile service to do the same thing and compare how long did it take to perform the same tests but with different approaches.
After doing some research on how to implement the conversion on the mobile application I have only found FFMpeg. I would like to know if any of you guys have in mind like other video converting API`s for android or something that i should consider before submitting my proposal.