Recherche avancée

Médias (1)

Mot : - Tags -/net art

Autres articles (84)

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-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

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

Sur d’autres sites (9800)

  • FFMpeg not printing SDP information to console

    29 janvier 2014, par Steven Glick

    I was trying to create an FFMpeg stream and read it from VLC player, but I am getting an error saying SDP is required. However FFMpeg is not printing the SDP information to console as it is supposed to. How can I get the SDP file for the stream ?

    Here is the command I am using to stream

    ffmpeg -f dshow -r 10000/1001 -i video="screen-capture-recorder" -vcodec libx264 -tune zerolatency -b 900k -f mpegts rtp://127.0.0.1:1234
  • video created using ffmpeg and H264 codec does not play on android :player says it is not a divx file

    6 octobre 2014, par susheel tickoo

    I have created a video from images using ffmpeg and H264 codec in C.
    I can run the video using a 3rd party player (V player ) on android devices.
    But the native player does not play the video. IT says that the file is not a Divx file.
    below is the code that i have used to create the video from images :

    JNIEXPORT void Java_com_canvasm_mediclinic_VideoGenerator_generate(JNIEnv *pEnv, jobject pObj,jobjectArray stringArray,int famerate,int width,int height,jstring videoFilename)
    {
       AVCodec *codec;
       AVCodecContext *c= NULL;
       //int framesnum=5;
       int i,looper, out_size, size, x, y,j;
       int ret,pts,got_pkt_ptr;

       int imagecount= (*pEnv)->GetArrayLength(pEnv, stringArray);
       int retval=-10;
       uint8_t endcode[]={0,0,1,0xb7};
       AVPacket outpacket;
       FILE *f;
       AVFrame *picture,*encoded_avframe;  
       jbyte *raw_record;
       char logdatadata[100];
       int returnvalue = -1,numBytes =-1;
       const char *gVideoFileName = (char *)(*pEnv)->GetStringUTFChars(pEnv, videoFilename, NULL);
           /* find the mpeg1 video encoder */  
       codec = avcodec_find_encoder_by_name("libx264");
       if (!codec) {
           __android_log_write(ANDROID_LOG_INFO, "record","codec not found");
           exit(1);
       }
       c= avcodec_alloc_context();
       c->bit_rate = 500000;
       c->width = width;
       c->height = height;
       c->time_base= (AVRational){1,famerate};
       c->gop_size = 12; // emit one intra frame every ten frames
       c->max_b_frames=1;
       c->pix_fmt = PIX_FMT_YUV420P;
       c->codec_type = AVMEDIA_TYPE_VIDEO;
       c->codec_id = codec->id;
       c->max_b_frames = 0;
       c->me_range = 16;
       c->max_qdiff = 4;
       c->qmin = 10;
       c->qmax = 26;
       c->qcompress = 0.6;
       c->trellis=0;
       c->level = 30;
       c->refs = 5;
       c->coder_type = 0;
       c->scenechange_threshold = 0;
       //new
       c->flags|=CODEC_FLAG_LOOP_FILTER;//new  
       c->scenechange_threshold = 40; //new
       c-> rc_buffer_size = 0;
       c->gop_size=250; //new
       c->max_b_frames=1;//new
       c->me_method=7;
       c->me_cmp|= 1;
       c->me_subpel_quality = 6;
       c->qmax=51;
       c->keyint_min=25;
       av_opt_set(c->priv_data,"subq","6",0);
       av_opt_set(c->priv_data,"crf","20.0",0);
       av_opt_set(c->priv_data,"weighted_p_pred","0",0);
       av_opt_set(c->priv_data,"profile","baseline",AV_OPT_SEARCH_CHILDREN);
       av_opt_set(c->priv_data,"preset","medium",0);
       av_opt_set(c->priv_data,"tune","zerolatency",0);
       av_opt_set(c->priv_data,"x264opts","rc-lookahead=0",0);




       /* open it */
       retval = avcodec_open(c, codec);
       if ( retval < 0)
       {
       __android_log_write(ANDROID_LOG_INFO, "record","could not open codec");
           exit(1);
       }  
       f = fopen(gVideoFileName, "ab");

       if (!f) {
           __android_log_write(ANDROID_LOG_INFO, "record","could not open video file");
           exit(1);
       }
       pts = 0;
       for(i=0;i<=imagecount;i++) {


           jboolean isCp;
           int progress = 0;
           float temp;

           jstring string;
           if(i==imagecount)
               string = (jstring) (*pEnv)->GetObjectArrayElement(pEnv, stringArray,
                         imagecount-1);
           else
               string = (jstring) (*pEnv)->GetObjectArrayElement(pEnv, stringArray, i);

           const char *rawString = (*pEnv)->GetStringUTFChars(pEnv, string, &isCp);        
           picture = OpenImage(rawString,width,height,i);      
           av_init_packet(&outpacket);
           fflush(stdout);


           {              
               picture->pts=i ;//c->frame_number;          
               do{
                   out_size = avcodec_encode_video2(c, &outpacket,
                                    picture,&got_pkt_ptr);            
               }while(!got_pkt_ptr);  

           }

           returnvalue = fwrite(outpacket.data, 1, outpacket.size, f);
           av_free_packet(&outpacket);

       }


       /* get the delayed frames */
       for(got_pkt_ptr =1; got_pkt_ptr; i++) {
           fflush(stdout);
           avcodec_encode_video2(c, &outpacket, NULL,&got_pkt_ptr);

           if(got_pkt_ptr)
           {
               fwrite(outpacket.data, 1, outpacket.size, f);
               av_free_packet(&outpacket);
           }  
       }

       fwrite(endcode,1,sizeof(endcode),f);
       fclose(f);  
       avcodec_close(c);
       av_free(c);    
    }
    AVFrame* OpenImage(const char* imageFileName,int w,int h,int index)
    {
       AVFrame *pFrame;
       AVCodec *pCodec ;
       AVFormatContext *pFormatCtx = NULL;
       AVCodecContext *pCodecCtx;
       uint8_t *buffer;
       int frameFinished,framesNumber = 0,retval = -1,numBytes=0;
       AVPacket packet;
       char logdatadata[100];
       int result = -1;



       result=avformat_open_input(&pFormatCtx,imageFileName,NULL,NULL);
       if(result!=0)      
       {      
           __android_log_write(ANDROID_LOG_INFO, "record",
                   "Can't open image file ");
           return NULL;
       }
       pCodecCtx = pFormatCtx->streams[0]->codec;
       pCodecCtx->width = w;
       pCodecCtx->height = h;
       pCodecCtx->pix_fmt = PIX_FMT_YUV420P;

       // Find the decoder for the video stream
       pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
       if (!pCodec)
       {
           __android_log_write(ANDROID_LOG_INFO, "record",
                   "Can't open image file ");
           return NULL;
       }

       pFrame = avcodec_alloc_frame();

       numBytes = avpicture_get_size(PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx->height);
       buffer = (uint8_t *) av_malloc(numBytes * sizeof(uint8_t));

       retval = avpicture_fill((AVPicture *) pFrame, buffer, PIX_FMT_YUV420P, pCodecCtx->width, pCodecCtx-
               >height);

       // Open codec
       if(avcodec_open(pCodecCtx, pCodec)<0)
       {
           __android_log_write(ANDROID_LOG_INFO, "record","Could not open codec");
           return NULL;
       }

       if (!pFrame)
       {
           __android_log_write(ANDROID_LOG_INFO, "record","Can't allocate memory for AVFrame\n");
           return NULL;
       }
       int readval = -5;
       while (readval = av_read_frame(pFormatCtx, &packet) >= 0)
       {
           if(packet.stream_index != 0)
               continue;      
           int ret = avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);

           if (ret > 0)
           {
               __android_log_write(ANDROID_LOG_INFO, "record","Frame is decoded\n");
               pFrame->quality = 4;
               av_free_packet(&packet);
               av_close_input_file(pFormatCtx);            
               return pFrame;
           }
           else
           {
               __android_log_write(ANDROID_LOG_INFO, "record","error while decoding frame \n");
           }
       }  
    }

    The abovve code produces a video that can be run using a 3rd party player like VLC.
    I just want to know what am i missing to get the video playing on android
    How can i remove the "Not a divx file" error.

    I have checked some of the forums links given below but of no use
    link1
    link2

    thanks in advance.

  • Killing infinite ffmpeg on the command line from an application

    14 décembre 2013, par bhupinder

    I am using

    ffmpeg.exe -f dshow -i audio=virtual-audio-capturer -q 4 -y -tune zerolatency outfile.mp3

    to grap sound from speakers. This command runs infinitely. I have to use

    Process->kill();

    command to stop execution of this command in my application.

    I want to know if it is safe to kill it the way I am killing, or is there any better way ?