
Recherche avancée
Autres articles (43)
-
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 (...) -
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 à (...) -
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 (4810)
-
how to Extract Audio from video with spring boot java in linux or windows system with ffmpeg coding part need guidance
2 décembre 2022, par Makarand BurudI got this command but don't know the how to configure it for project on command line ?


String[] command = "-y", "-i", filename, "-vn",
"-ar", "44100", "-ac", "2", "-b:a", "256k", "-f", "mp3" + fileStorageLocation ;


-
Trying to fix VPlayer's seeking ability, need some guidance [Android FFmpeg]
1er juin 2016, par vxh.vietI’m trying to fix the currently broken seeking ability of VPlayer which is a FFmpeg player for Android. Being a Java developer, C code looks like alien language to me so can only fix it using common logic (which could make any C veteran have a good laugh).
The relevant file is player.c and I’ll try my best to point out the relevant modification.
So the basic idea is because FFmpeg’s
av_seek_frame
is very inaccurate even withAVSEEK_FLAG_ANY
so I’m trying to follow this suggestion to seek backward to the nearest keyframe and then decode to the frame I want. One addition note is since I want to seek based on millisecond while the said solution show the way to seek by frame which is potentially a source of problem.In the
Player
I add the following fields :struct Player{
....
AVFrame *frame;
int64_t current_time_stamp;
};In the
player_read_from_stream
I modify the seeking part as :void * player_read_from_stream(void *data) {
...
struct DecoderData *decoder_data = data;
int stream_no = decoder_data->stream_no;
AVCodecContext * ctx = player->input_codec_ctxs[stream_no];
...
// seeking, start my stuff
if(av_seek_frame(player->input_format_ctx, seek_input_stream_number, seek_target, AVSEEK_FLAG_BACKWARD) >= 0){
//seek to key frame success, now need to read every frame from the key frame to our target time stamp
while(player->current_time_stamp < seek_target){
int frame_done;
while (av_read_frame(player->input_format_ctx, &packet) >= 0) {
if (packet.stream_index == seek_input_stream_number) {
avcodec_decode_video2(ctx, player->frame, &frame_done, &packet);
LOGI(1,"testing_stuff ctx %d", *ctx);
if (frame_done) {
player->current_time_stamp = packet.dts;
LOGI(1,"testing_stuff current_time_stamp: %"PRId64, player->current_time_stamp);
av_free_packet(&packet);
return;
}
}
av_free_packet(&packet);
}
}
}
//end my stuff
LOGI(3, "player_read_from_stream seeking success");
int64_t current_time = av_gettime();
player->start_time = current_time - player->seek_position;
player->pause_time = current_time;
}And in
player_alloc_frames
I allocate the memory for my frame as :int player_alloc_frames(struct Player *player) {
int capture_streams_no = player->caputre_streams_no;
int stream_no;
for (stream_no = 0; stream_no < capture_streams_no; ++stream_no) {
player->input_frames[stream_no] = av_frame_alloc();
//todo: test my stuff
player->frame = av_frame_alloc();
//end test
if (player->input_frames[stream_no] == NULL) {
return -ERROR_COULD_NOT_ALLOC_FRAME;
}
}
return 0;
}Currently it just keep crashing and being a typical Android NDK’s "feature", it just provide a super helpful stack trace :
libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x40 in tid 2717 (FFmpegReadFromS)
I very much appreciate if anyone could help me solve this problem. Thank you for your time.
-
lavc/libx265 : allow users to set closed GOP via generic lavc flag
1er juin 2018, par Gyan Doshi