Recherche avancée

Médias (0)

Mot : - Tags -/alertes

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (96)

  • Sélection de projets utilisant MediaSPIP

    29 avril 2011, par

    Les exemples cités ci-dessous sont des éléments représentatifs d’usages spécifiques de MediaSPIP pour certains projets.
    Vous pensez avoir un site "remarquable" réalisé avec MediaSPIP ? Faites le nous savoir ici.
    Ferme MediaSPIP @ Infini
    L’Association Infini développe des activités d’accueil, de point d’accès internet, de formation, de conduite de projets innovants dans le domaine des Technologies de l’Information et de la Communication, et l’hébergement de sites. Elle joue en la matière un rôle unique (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par 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 ;

Sur d’autres sites (5594)

  • ffmpeg `avformat_write_header` fail with -22 Invalid arg

    3 février 2017, par user998953

    I am having an error with FFMPEG. Here is my code :

    static int open_output_file(const char *filename) {
       AVStream *out_stream;
       AVStream *in_stream;
       AVCodecContext *dec_ctx, *enc_ctx;
       AVCodec *encoder;
       int ret;
       unsigned int i;
       ofmt_ctx = NULL;
       avformat_alloc_output_context2(&ofmt_ctx, NULL, NULL, filename);
       if (!ofmt_ctx) {
           LOGD(NULL, AV_LOG_ERROR, "Could notcreate output context\n");
           return AVERROR_UNKNOWN;
       }
       for (i = 0; i < ifmt_ctx->nb_streams; i++) {
           out_stream = avformat_new_stream(ofmt_ctx, NULL);
           if (!out_stream) {
               LOGD(NULL, AV_LOG_ERROR, "Failed allocating output stream\n");
               return AVERROR_UNKNOWN;
           }
           in_stream = ifmt_ctx->streams[i];
           dec_ctx = in_stream->codec;
           enc_ctx = out_stream->codec;
           if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO
               || dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
               /* in this example, we choose transcoding to same codec */

               encoder = avcodec_find_encoder(dec_ctx->codec_id);
               enc_ctx = avcodec_alloc_context3(encoder);
               if (!encoder) {
                   LOGE("encoder not avalibe ");
                   return -1;
               }
               /* In this example, we transcode to same properties(picture size,
               * sample rate etc.). These properties can be changed for output
               * streams easily using filters */
               if (dec_ctx->codec_type == AVMEDIA_TYPE_VIDEO) {
                   enc_ctx->height = dec_ctx->height;
                   enc_ctx->width = dec_ctx->width;
                   enc_ctx->sample_aspect_ratio = dec_ctx->sample_aspect_ratio;
                   /* take first format from list of supported formats */
                   enc_ctx->pix_fmt = encoder->pix_fmts[0];
                   /* video time_base can be set to whatever is handy andsupported by encoder */
                   enc_ctx->time_base = dec_ctx->time_base;
               } else {
                   enc_ctx->sample_rate = dec_ctx->sample_rate;
                   enc_ctx->channel_layout = dec_ctx->channel_layout;
                   enc_ctx->channels = av_get_channel_layout_nb_channels(enc_ctx->channel_layout);
                   /* take first format from list of supported formats */
                   enc_ctx->sample_fmt = encoder->sample_fmts[0];
                   AVRational time_base = {1, enc_ctx->sample_rate};
                   enc_ctx->time_base = time_base;
               }
               /* Third parameter can be used to pass settings to encoder*/
               ret = avcodec_open2(enc_ctx, encoder, NULL);
               if (ret < 0) {
                   LOGD("Cannot openvideo encoder for stream #%u\n", i);
                   return ret;
               }
           } else if (dec_ctx->codec_type == AVMEDIA_TYPE_UNKNOWN) {
               LOGE("Elementarystream #%d is of unknown type, cannot proceed\n",
                    i);
               return AVERROR_INVALIDDATA;
           } else {
               /* if this stream must be remuxed */
               ret = avcodec_copy_context(ofmt_ctx->streams[i]->codec,
                                          ifmt_ctx->streams[i]->codec);
               if (ret < 0) {
                   LOGE("Copyingstream context failed\n");
                   return ret;
               }
           }
           if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
               enc_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;
       }
       av_dump_format(ofmt_ctx, 0, filename, 1);
       if (!(ofmt_ctx->oformat->flags & AVFMT_NOFILE)) {
           ret = avio_open(&ofmt_ctx->pb, filename, AVIO_FLAG_WRITE);
           if (ret < 0) {
               LOGE("Could not open output file '%s'", filename);
               return ret;
           }
       }
       ret = avformat_write_header(ofmt_ctx, NULL); //wrong here
       if (ret < 0) {
           char buf[1024] = {0};
           av_strerror(ret, buf, 1024);
           LOGE("Error occurred when opening output file : %s\n", buf);
           return ret;
       }
       return 0;
    }

    Here is the ffmpeg log. Pay close attention to the error I am getting which is :

    Error occurred when opening output file : Invalid argument

    Here is the rest of it :

    02-03 18:09:44.120 24571-24571/com.zhenbeiju.avplayer E/videoplayer: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xebf33e00] After avformat_find_stream_info() pos: 680796 bytes read:308417 seeks:1 frames:48
    02-03 18:09:44.120 24571-24571/com.zhenbeiju.avplayer E/videoplayer: [h264 @ 0xea72cc00] nal_unit_type: 7, nal_ref_idc: 3
    02-03 18:09:44.120 24571-24571/com.zhenbeiju.avplayer E/videoplayer: [h264 @ 0xea72cc00] nal_unit_type: 8, nal_ref_idc: 3
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/sdcard/test2.mp4':
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer:   Metadata:
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     major_brand     :
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer: mp42
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     minor_version   :
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 0
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     compatible_brands:
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer: isommp42
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     creation_time   :
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 2017-01-23T08:22:57.000000Z
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     com.android.version:
    02-03 18:09:44.121 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 6.0.1
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer:   Duration:
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 00:00:07.74
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: , start:
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 0.000000
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: , bitrate:
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 14377 kb/s
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     Stream #0:0
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: (eng)
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: , 1, 1/90000
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: : Video: h264 (avc1 / 0x31637661), yuv420p, 1280x720, 13892 kb/s
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: , SAR 1:1 DAR 16:9
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: ,
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 30.02 fps,
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 30 tbr,
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 90k tbn,
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 60.04 tbc
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer:  (default)
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     Metadata:
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer:       rotate          :
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 90
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer:       creation_time   :
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 2017-01-23T08:22:57.000000Z
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer:       handler_name    :
    02-03 18:09:44.122 24571-24571/com.zhenbeiju.avplayer E/videoplayer: VideoHandle
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     Side data:
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer:      
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer: displaymatrix: rotation of -90.00 degrees
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     Stream #0:1
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer: (eng)
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer: , 47, 1/48000
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer: : Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer:  (default)
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     Metadata:
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer:       creation_time   :
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer: 2017-01-23T08:22:57.000000Z
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer:       handler_name    :
    02-03 18:09:44.123 24571-24571/com.zhenbeiju.avplayer E/videoplayer: SoundHandle
    02-03 18:09:44.124 24571-24571/com.zhenbeiju.avplayer E/videoplayer: [libx264 @ 0xdbf3dc00] using mv_range_thread = 56
    02-03 18:09:44.126 24571-24571/com.zhenbeiju.avplayer E/videoplayer: [libx264 @ 0xdbf3dc00] using cpu capabilities: none!
    02-03 18:09:44.197 24571-24571/com.zhenbeiju.avplayer E/videoplayer: [libx264 @ 0xdbf3dc00] profile High, level 4.0
    02-03 18:09:44.199 24571-24571/com.zhenbeiju.avplayer E/videoplayer: Output #0, mp4, to '/sdcard/test3.mp4':
    02-03 18:09:44.199 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     Stream #0:0
    02-03 18:09:44.199 24571-24571/com.zhenbeiju.avplayer E/videoplayer: , 0, 0/0
    02-03 18:09:44.199 24571-24571/com.zhenbeiju.avplayer E/videoplayer: : Unknown: none
    02-03 18:09:44.200 24571-24571/com.zhenbeiju.avplayer E/videoplayer:     Stream #0:1
    02-03 18:09:44.200 24571-24571/com.zhenbeiju.avplayer E/videoplayer: , 0, 0/0
    02-03 18:09:44.200 24571-24571/com.zhenbeiju.avplayer E/videoplayer: : Unknown: none
    02-03 18:09:44.200 24571-24571/com.zhenbeiju.avplayer E/videoplayer: [file @ 0xdbdc71e0] Setting default whitelist 'file,crypto'
    02-03 18:09:44.201 24571-24571/com.zhenbeiju.avplayer E/videoplayer: [mp4 @ 0xebf3a800] Could not find tag for codec none in stream #0, codec not currently supported in container
    02-03 18:09:44.201 24571-24571/com.zhenbeiju.avplayer E/videoplayer: Error occurred when opening output file : Invalid argument
  • Anomalie #3875 : Impossible de voir les sous-rubriques

    9 février 2017, par denis -

    Juste pour préciser /158 donne en fait l’url complète /prog/2017/158/ qui pointe bien vers une rubrique.

    Et ça ne semble pas lié aux chiffres, si je crée une rubrique qui donne comme url coucou-coucou, j’ai bien accès à un article prog/2017/coucou-coucou/bonjour, si je la renomme en coucou l’url prog/2017/coucou/bonjour donne une erreur.

    C’est sans doute très marginal de se retrouver avec 2 urls /xxx et /xxx-xxx

  • FFMPEG to OpenGL Texture

    23 avril 2014, par Spamdark

    I was here to ask, how can I convert an AVFrame to an opengl texture. Actually, I created a renderer the outputs me the audio (Audio is working) and the video, but the video is not outputing. Here is my code :

    Texture creation :

    glGenTextures(1,&_texture);
    glBindTexture(GL_TEXTURE_2D,_texture);
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
    glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

    Code Info : _texture variable is a GLuint that keeps the texture ID

    Function that gets the AVFrame and convert it to OpenGL Texture :

    int VideoGL::NextVideoFrame(){
    // Get a packet from the queue
    AVPacket *videopacket = this->DEQUEUE(VIDEO);
    int frameFinished;
    if(videopacket!=0){
       avcodec_decode_video2(_codec_context_video, _std_frame,&frameFinished,videopacket);

       if(frameFinished){

           sws_scale(sws_ctx, _std_frame->data, _std_frame->linesize, 0, _codec_context_video->height, _rgb_frame->data, _rgb_frame->linesize);

           if(_firstrendering){
           glBindTexture(GL_TEXTURE_2D,_texture);
           glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, _codec_context_video->width,_codec_context_video->height,0,GL_RGB,GL_UNSIGNED_BYTE,_rgb_frame->data[0]);

           _firstrendering = false;

           }else{

               glActiveTexture(_texture);
               glBindTexture(GL_TEXTURE_2D,_texture);
               glTexSubImage2D(GL_TEXTURE_2D,0,0,0,_codec_context_video->width,_codec_context_video->height,GL_RGB,GL_UNSIGNED_BYTE,_rgb_frame->data[0]);

           }
           av_free_packet(videopacket);
           return 0;
       }else{

           av_free_packet(videopacket);
           return -1;
       }

    }else{
       return -1;
    }
    return 0;
    }

    Code Information : There is a queue where a thread store the AVFrames, this function is frequently called to get the AVFrames, until it gets a NULL it stops to being called.

    That’s actually not working. (I tried to look at some questions in stack overflow, it’s still not working)
    Any example, or someone that helps me to correct any error there ?

    Additional Data : I tried to change the GL_RGB to GL_RGBA and started to play with the formats, anyway it crashes when I try GL_RGBA (Because the width and height are very big, anyway I tried to resize them). I have tried to change the sizes to Power Of 2, stills not working.

    1 Edit :

    Thread function :

    DWORD WINAPI VideoGL::VidThread(LPVOID myparam){

    VideoGL * instance = (VideoGL*) myparam;
    instance->wave_audio->Start();

    int quantity=0;

    AVPacket packet;
    while(av_read_frame(instance->_format_context,&packet) >= 0){
       if(packet.stream_index==instance->videoStream){
           instance->ENQUEUE(VIDEO,&packet);
       }
       if(packet.stream_index==instance->audioStream){
           instance->ENQUEUE(AUDIO,&packet);
       }
    }

    instance->ENQUEUE(AUDIO,NULL);
    instance->ENQUEUE(VIDEO,NULL);

    return 0;
    }

    Thread creation function :

    CreateThread(NULL, 0, VidThread, this, NULL, NULL);

    Where this refers to the class that contains the NextVideoFrame, and the _texture members.

    Solved :

    I followed some of the datenwolf tips, and now the video is displaying correctly with the audio/video :

    Screenshot took