Recherche avancée

Médias (91)

Autres articles (26)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • D’autres logiciels intéressants

    12 avril 2011, par

    On ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
    La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
    On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
    Videopress
    Site Internet : (...)

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (6539)

  • Is it possible to establish youtube live stream with ffmgep from Android if video encoded on another device

    20 mai 2015, par Nick Kleban

    I have "Android Device" and some other "Device with camera". This device captures video, encodes it (h264) and sends it to my phone through UDP. On phone i’m receiving only AVFrame’s and it enough to decode and show this video on phone screen. But i can’t establish working video stream to youtube.

    The problem is that all examples does encoding and streaming on one device, so they have properly initialized AVStream and AVPaket. I have feeling that i’m missing something but i cant find what. I’ve passed all stages of creating broadcast, stream, initialization of AVFormatContext, and av_interleaved_write_frame returns 0. Seems like all ok.
    But on youtube i see short living indication of video stream quality, then it dissapears, and all the time there is no video.

    So the question is is it possible to establish video stream to Youtube live if you have only AVFrames that encoded on some other device, and you missing some context information ? If so - what i’m missing ?

    static AVFormatContext *fmt_context = NULL;
    static AVStream *video_stream;

    eLIVESTREAM_ERROR LIVESTREAM_Manager_Start(char* url) {
       eLIVESTREAM_ERROR error = LIVESTREAM_ERROR;
       av_register_all();
       avcodec_register_all();
       fmt_context = avformat_alloc_context();

       AVOutputFormat *ofmt = NULL;
       if (fmt_context != NULL) {
           ofmt = av_guess_format("flv", NULL, NULL);
           if (ofmt != NULL) {
               fmt_context->oformat = ofmt;

               video_stream = av_new_stream(fmt_context, 0);
               AVCodec *video_codec = avcodec_find_decoder(AV_CODEC_ID_H264);
               AVCodecContext *video_codec_ctx = video_stream->codec;
               video_codec_ctx->pix_fmt = PIX_FMT_YUV420P;
               video_codec_ctx->skip_frame = AVDISCARD_DEFAULT;
               video_codec_ctx->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
               video_codec_ctx->skip_loop_filter = AVDISCARD_DEFAULT;
               video_codec_ctx->workaround_bugs = FF_BUG_AUTODETECT;
               video_codec_ctx->codec_type = AVMEDIA_TYPE_VIDEO;
               video_codec_ctx->codec_id = AV_CODEC_ID_H264;
               video_codec_ctx->skip_idct = AVDISCARD_DEFAULT;
               video_codec_ctx->time_base.num = 1;
               video_codec_ctx->time_base.den = 30;
               video_codec_ctx->width = 640;
               video_codec_ctx->height = 386;

               if(fmt_context->oformat->flags & AVFMT_GLOBALHEADER)  
                  video_codec_ctx->flags |= CODEC_FLAG_GLOBAL_HEADER;

               int codec_open_rslt = avcodec_open2(video_codec_ctx, video_codec, NULL);
               if (codec_open_rslt < 0) {
                   error = LIVESTREAM_ERROR;
               }

               if (!(ofmt->flags & AVFMT_NOFILE)) {
                   int open_rslt = avio_open(&fmt_context->pb, url, URL_WRONLY);
                   if (open_rslt == 0) {
                       int wrt_header_rslt = avformat_write_header(fmt_context, NULL);
                       if (wrt_header_rslt == 0) {
                           error = LIVESTREAM_OK;
                       } else {
                           avio_close(fmt_context->pb);
                       }
                   }
               }
           }
       }
       if (error != LIVESTREAM_OK) {
           if (ofmt != NULL) {
               av_free(ofmt);
           }
           if (fmt_context != NULL) {
               av_free(fmt_context);
           }
       }
       return error;
    }

    eLIVESTREAM_ERROR LIVESTREAM_Manager_Send (uint8_t *data , int size) {
       eLIVESTREAM_ERROR error = LIVESTREAM_OK;
       if (fmt_context == NULL || size <= 0 || data == NULL) {
           error = LIVESTREAM_ERROR;
       }
       if (error == LIVESTREAM_OK) {
           AVPacket pkt;
           av_init_packet(&pkt);
           pkt.stream_index = video_stream->index;
           pkt.data = data;
           pkt.size = size;
           pkt.pts = AV_NOPTS_VALUE;
           pkt.dts = AV_NOPTS_VALUE;
           pkt.duration = 0;
           pkt.pos = -1;
           int write_rslt = av_interleaved_write_frame(fmt_context, &pkt);
           if (write_rslt != 0) {
               error = LIVESTREAM_ERROR;
           }
       }
       return error;
    }

    void LIVESTREAM_Manager_Finish () {
       av_write_trailer(fmt_context);
       avio_close(fmt_context->pb);
       av_free(fmt_context);
       fmt_context = NULL;
    }
  • YouTube - MP4 to MP3 messes up

    23 novembre 2019, par theeSpark

    It’s supposed to download all the videos in the playlist and convert them to mp3. But all this does is make the mp4’s and 1 empty mp3 with a number higher than the max mp4. My newbie brain doesn’t know how to fix this...

    var ytpl = require('ytpl');
    var fs = require('fs-extra');
    var path = require('path');
    var ffmpeg = require('fluent-ffmpeg');
    var binaries = require('ffmpeg-static');
    var ytdl = require('ytdl-core');

    var output_dir = path.join(__dirname+"/dl");

    ytpl("PL8n8S4mVUWvprlN2dCAMoIo6h47ZwR_gn", (err, pl) => {
       if(err) throw err;

       let c = 0;

       pl.items.forEach((i) => {
           ytdl(i.url_simple+"", { filter: 'audioonly' }).pipe(fs.createWriteStream(output_dir+"/"+c+".mp4")).on('finish', () => {
               console.log("Finished MP4 DL, starting conversion...");
               ffmpeg(output_dir+"/"+c+".mp4")
                   .setFfmpegPath(binaries.path)
                   .format('mp3')
                   .audioBitrate(320)
                   .output(fs.createWriteStream(output_dir+"/"+c+".mp3"))
                   .on('end', () => {
                       console.log("Finished MP3 Convert...");
                   })
                   .run();
           });
           c++;
       });

    });
  • Revision 61148 : Il faut faire le test sur $saisies[$cle][’saisies’] car ...

    9 mai 2012, par yffic@… — Log

    Il faut faire le test sur $saisies[$cle]saisies ? car $saisies[$cle]saisies ? peut avoir été supprimé du tableau de saisies ligne 362 dans le cas où le fieldset possède sa propre condition et que cette dernière n’est pas remplie. (Joseph)