Recherche avancée

Médias (1)

Mot : - Tags -/Rennes

Autres articles (62)

  • 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

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • Les statuts des instances de mutualisation

    13 mars 2010, par

    Pour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
    Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...)

Sur d’autres sites (8815)

  • Gstreamer pipeline to scale down video before streaming

    20 novembre 2014, par r3dsm0k3

    Here is what Im trying to achieve.

    Im streaming from a Logitech C920 camera on beaglebone black with gstreamer. I have to save a copy of the video saved locally while it is streaming. I have achieved that with tee.
    Logitech camera gives h264 encoded video at a certain bitrate, mostly very high.

    Im streaming from a moving car on 3G, and the network is not good enough to send the stream to nginx-rtmp server Im using to re-distribute thus gives strong artifacts in the result.

    Im able to alter the bitrate of captured video using uvch264.
    But then, the locally saved video also would have lower bitrate.

    Is there anyway of capturing a higher bitrate 1080p video from the camera and sending a lower resolution, lower bitrate video the streaming server ?

    Following is the pipeline I have currently.

    gst-launch-1.0 -v -e uvch264src initial-bitrate=400000 average-bitrate=400000 iframe-period=3000  device=/dev/video0 name=src auto-start=true  src.vidsrc ! queue ! video/x-h264,width=1920,height=1080,framerate=30/1 ! h264parse ! flvmux streamable=true  name=flvmuxer ! queue ! tee name=t ! queue ! filesink location=/mnt/test.flv t. ! queue ! rtmpsink location=$SERVER/hls/$CAM1

    I could also try sending the higher bitrate video to a udpsink instead of rtmpsink and with another gstreamer process parallely and takes the data using a udpsink and probably post process/ re-encode and send to rtmp server.

    Im also limited by the processing speed BeagleBone has to do for encoding the videos. Currently Im trying for 1 camera and in the finished project I would like to have 2 cameras connected. Upload speed Im getting for the network is under 1Mbps.

    How do I solve this with less load on the BeagleBone ? Im very open to a new architecture as well.

  • mp4 video file generated using ffmpeg, works on desktop but doesn't work on android emulator

    8 mai 2014, par Nikesh

    I am generating a video that converts images into .mp4 video file. Every thing works fine. File is also generated as mp4 but the file doesn’t run on android device, says cannot play video.

    Please find the attached sample code which convert single jpeg file into video (.mp4)

    Please help me to resolve this issue. Thanks.

    JNIEXPORT void JNICALL Java_roman10_ffmpegtst_VideoBrowser_videoExample(JNIEnv *pEnv, jobject pObj, char* imagefile,char* videoFile)
    {
    avcodec_init();
    av_register_all();
    avcodec_register_all();

    AVCodecContext          *pOCtx= NULL;
    AVCodec                 *pOCodex = NULL;
    LOGE(10,"Start videoExample");
    pOCodex = avcodec_find_encoder(AV_CODEC_ID_MPEG1VIDEO);

    if (!pOCodex) {
       LOGE(10,"Cannot find encoder %s", pOCodex);
       exit(1);
    }

    pOCtx= avcodec_alloc_context3(pOCodex);

    uint8_t *outbuf;
    int i, out_size;

    pOCtx->bit_rate = 400000;
    pOCtx->width = 640;
    pOCtx->height = 480;
    AVRational rational = {1,25};
    pOCtx->time_base= rational;
    pOCtx->gop_size = 10; /* emit one intra frame every ten frames */
    pOCtx->max_b_frames=1;
    pOCtx->pix_fmt = AV_PIX_FMT_YUV420P;

    LOGE(10,"Start avcodec_open2");
    int ret = avcodec_open2(pOCtx,pOCodex,NULL);
    if(ret < 0)
    {
        return;
    }
    LOGE(10,"End avcodec_open2");
    AVFormatContext         *pIFormatCtx = NULL;
    ret = avformat_open_input(&pIFormatCtx, imagefile, NULL, NULL);
    if(ret < 0)
    {
       //Cant't open jpg file
       return;
    }
    av_dump_format(pIFormatCtx, 0, imagefile, 0);

    AVCodecContext          *pICodecCtx;  //output codec context
    pICodecCtx = pIFormatCtx->streams[0]->codec;
    /*pICodecCtx->width = 640;
    pICodecCtx->height = 480;
    pICodecCtx->pix_fmt = PIX_FMT_YUV420P;*/


    AVCodec *pICodec = avcodec_find_decoder(pICodecCtx->codec_id); //output codec
    // Open codec
    ret = avcodec_open2(pICodecCtx, pICodec,NULL);
    if(ret < 0)
    {
       //Can't find the decoder
       return;
    }

    AVFrame *pIFrame = avcodec_alloc_frame();
    if (!pIFrame)
    {
       //Can't alloc the input frame
       return ;
    }


    int bufSize = avpicture_get_size(AV_PIX_FMT_YUVJ420P, pICodecCtx->width, pICodecCtx->height);
    uint8_t *buffer = (uint8_t *) av_malloc(bufSize * sizeof(uint8_t));

    avpicture_fill((AVPicture *) pIFrame, buffer, AV_PIX_FMT_YUVJ420P, pICodecCtx->width, pICodecCtx->height);

    FILE *outputFile;

    outputFile = fopen(videoFile, "w+");
    if (!outputFile) {
       LOGE(10,"could not open ");
       exit(1);
    }

    int outbuf_size = 100000;
    outbuf = (uint8_t*)malloc(outbuf_size);

    AVPacket packet;
    int frameFinished;
    int framesNumber = 0;
    while (av_read_frame(pIFormatCtx, &packet) >= 0)
    {
       if(packet.stream_index != 0)
           continue;

       ret = avcodec_decode_video2(pICodecCtx, pIFrame, &frameFinished, &packet);
       if (ret > 0)
       {
           pIFrame->quality = 4;

           for(i=0;i<25;i++) {
               fflush(stdout);
               /* encode the image */
               out_size = avcodec_encode_video(pOCtx, outbuf, outbuf_size, pIFrame);
               fwrite(outbuf, 1, out_size, outputFile);
           }
       }
    }

    /* get the delayed frames */
    for(; out_size; i++) {
       fflush(stdout);
       out_size = avcodec_encode_video(pOCtx, outbuf, outbuf_size, NULL);
       fwrite(outbuf, 1, out_size, outputFile);
    }

    /* add sequence end code to have a real mpeg file */
    outbuf[0] = 0x00;
    outbuf[1] = 0x00;
    outbuf[2] = 0x01;
    outbuf[3] = 0xb7;
    fwrite(outbuf, 1, 4, outputFile);
    fclose(outputFile);
    free(outbuf);

    avcodec_close(pOCtx);
    av_free(pOCtx);
    av_free(pIFrame);
    }
  • Android HLS plays first segment then only audio

    1er décembre 2014, par Chris Recalis

    I’m having difficulty playing HLS on Android where only the audio is playing. The stream will play for the first video segment and then turn into an audio only stream. Here is a sample link https://clipter.com/c/aymels8/hls.m3u8

    hls.m3u8

    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-PLAYLIST-TYPE:VOD
    #EXT-X-TARGETDURATION:9
    #EXT-X-ALLOW-CACHE:YES
    #EXTINF:8.5,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/2103cb31c3078eb5edd5c325108f6d6f.ts?1416176849
    #EXTINF:7.33,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/1214ef63a031e3d3229893fdb60eea86.ts?1416176848
    #EXTINF:8.5,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/99c47c49548521b0fff05119a5c63908.ts?1416176889
    #EXTINF:8.43,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/143acefc2149f2572ddcc08abb705736.ts?1416176988
    #EXTINF:4.43,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/11c92b5084971e0cf4768f958e97f936.ts?1416177431
    #EXTINF:6.9,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/10ab810169fb684469f736a53f2cba3a.ts?1416177545
    #EXTINF:8.57,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/88b037af27757e4805d7f1ed0496cbb8.ts?1416178434
    #EXTINF:2.1,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/4a8cda13ea40228de4638dee9985b8b0.ts?1416178513
    #EXTINF:8.47,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/e6fa0135987c86d323f1e994bcd2b429.ts?1416179772
    #EXTINF:8.38,
    https://d3ilpkc014v0xn.cloudfront.net/f5305de24/9a08aba19b45601c83854216bb07a6b6.ts?1416604373
    #EXT-X-ENDLIST

    output from ffprobe

    ffprobe version 2.3.3 Copyright (c) 2007-2014 the FFmpeg developers
     built on Aug 25 2014 19:47:15 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/2.3.3 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
     libavutil      52. 92.100 / 52. 92.100
     libavcodec     55. 69.100 / 55. 69.100
     libavformat    55. 48.100 / 55. 48.100
     libavdevice    55. 13.102 / 55. 13.102
     libavfilter     4. 11.100 /  4. 11.100
     libavresample   1.  3.  0 /  1.  3.  0
     libswscale      2.  6.100 /  2.  6.100
     libswresample   0. 19.100 /  0. 19.100
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, mpegts, from '2103cb31c3078eb5edd5c325108f6d6f.ts?1416176849':
     Duration: 00:00:08.53, start: 1.400000, bitrate: 1236 kb/s
     Program 1
       Metadata:
         service_name    : Service01
         service_provider: FFmpeg
       Stream #0:0[0x100]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 480x480, 30 fps, 30 tbr, 90k tbn, 60 tbc
       Stream #0:1[0x101](und): Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, mono, fltp, 67 kb/s