Recherche avancée

Médias (1)

Mot : - Tags -/école

Autres articles (97)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Soumettre améliorations et plugins supplémentaires

    10 avril 2011

    Si vous avez développé une nouvelle extension permettant d’ajouter une ou plusieurs fonctionnalités utiles à MediaSPIP, faites le nous savoir et son intégration dans la distribution officielle sera envisagée.
    Vous pouvez utiliser la liste de discussion de développement afin de le faire savoir ou demander de l’aide quant à la réalisation de ce plugin. MediaSPIP étant basé sur SPIP, il est également possible d’utiliser le liste de discussion SPIP-zone de SPIP pour (...)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

Sur d’autres sites (5651)

  • Is there any problem in my FFMPEG encoder client code ?

    29 janvier 2024, par kyhnz

    I am trying to write code have function of capture video stream, encode as hevc265 and send to server as UDP :

    


    // There can some unnecessary library imports, rule 1: If it is ok, don&#x27;t touch it!&#xA;&#xA;#include <iostream>&#xA;#include <sys></sys>types.h>&#xA;#include &#xA;#include <cstring>&#xA;#include <sys></sys>socket.h>&#xA;#include <arpa></arpa>inet.h>&#xA;#include <netinet></netinet>in.h> &#xA;#include <string>&#xA;#include <cstdlib>&#xA;#include <cstdio>&#xA;&#xA;extern "C"&#xA;{&#xA;#include <libavutil></libavutil>frame.h>&#xA;#include <libavdevice></libavdevice>avdevice.h>&#xA;#include <libavformat></libavformat>avformat.h>&#xA;#include <libavcodec></libavcodec>avcodec.h>&#xA;#include <libavutil></libavutil>imgutils.h>&#xA;#include <libavcodec></libavcodec>packet.h>&#xA;#include <libavcodec></libavcodec>codec_id.h>&#xA;#include <libavutil></libavutil>error.h>&#xA;#include <libavutil></libavutil>error.h>&#xA;#include <libavutil></libavutil>opt.h>&#xA;}&#xA;&#xA;#define PORT 9999&#xA;#define IP_ADDRESS "127.0.0.1"&#xA;&#xA;using namespace std;&#xA;&#xA;int main(){&#xA;    const int width = 1080;&#xA;    const int height = 720;&#xA;    const int fps = 18; &#xA;    const auto resulation = "1080x720";&#xA;    const auto device = "/dev/video0";&#xA;    const auto format = "v4l2";&#xA;    const AVCodecID codec_id = AV_CODEC_ID_H265;&#xA;&#xA;    avdevice_register_all();&#xA;    avformat_network_init();&#xA;    AVFormatContext *formatContext = nullptr;&#xA;&#xA;    AVDictionary *format_opts = nullptr;&#xA;    av_dict_set(&amp;format_opts, "framerate", "18", 0);;&#xA;    av_dict_set(&amp;format_opts, "video_size", resulation, 0);&#xA;    &#xA;    const AVInputFormat *inputFormat = av_find_input_format(format);&#xA;    if (!inputFormat)&#xA;    {&#xA;        cerr &lt;&lt; "Unknown input format: " &lt;&lt; format &lt;&lt; endl;&#xA;        return 1;&#xA;    }&#xA;    cout &lt;&lt; "Input format: "&lt;&lt; format &lt;&lt; endl;&#xA;&#xA;    const AVCodec *codec = avcodec_find_encoder(codec_id);&#xA;    if (!codec) {&#xA;        cerr &lt;&lt; "Codec can&#x27;t find "&lt;&lt; codec_id &lt;&lt; endl;&#xA;        return 1;&#xA;    }&#xA;    cout &lt;&lt; "Found codec: "&lt;&lt; codec_id &lt;&lt; endl;&#xA;&#xA;    AVCodecContext *avctx = avcodec_alloc_context3(codec);&#xA;    if (!avctx) {&#xA;        cerr &lt;&lt; "Error: Could not create encoder!" &lt;&lt; endl;&#xA;        return 1;&#xA;    }&#xA;    cout &lt;&lt; "Create encoder. " &lt;&lt; endl;&#xA;&#xA;&#xA;    avctx->bit_rate = 1000000;&#xA;    avctx->width = width; &#xA;    avctx->height = height; &#xA;    avctx->pix_fmt = AV_PIX_FMT_YUV420P; &#xA;    avctx->time_base = (AVRational){1, fps};&#xA;    avctx->framerate = (AVRational){fps, 1};&#xA;    avctx->gop_size = fps*2;&#xA;    avctx->refs = 3;&#xA;&#xA;    av_opt_set(avctx->priv_data, "preset", "medium", 0);&#xA;    av_opt_set(avctx->priv_data, "crf", "18", 0);&#xA;    av_opt_set(avctx->priv_data, "tune", "zerolatency", 0);&#xA;&#xA;    if (avcodec_open2(avctx, codec, nullptr) &lt; 0) {&#xA;        cerr &lt;&lt; "Error: Couldn&#x27;t open codec" &lt;&lt; endl;&#xA;        return 1;&#xA;    }&#xA;    cout &lt;&lt; "Open codec succesfully." &lt;&lt; endl;&#xA;&#xA;    int open_input = avformat_open_input(&amp;formatContext, device,&#xA;                                            const_cast<avinputformat>(inputFormat), &amp;format_opts);&#xA;    if (open_input != 0)&#xA;    {&#xA;        cerr &lt;&lt; "Device cant open " &lt;&lt; device &lt;&lt; endl;&#xA;        return 1;&#xA;    }&#xA;    cout &lt;&lt; "Device active: " &lt;&lt; device &lt;width = avctx->width;&#xA;    frame->height = avctx->height;&#xA;    frame->format = avctx->pix_fmt;&#xA;&#xA;    if(av_frame_get_buffer(frame, 0) != 0){&#xA;        cerr &lt;&lt; "Error: video frame " &lt;&lt; endl;&#xA;        return 1;&#xA;    }cout &lt;&lt; "Video frame has been created." &lt;&lt; endl;&#xA;&#xA;    if(av_frame_make_writable(frame) != 0){&#xA;        cerr &lt;&lt; "Error: frame is not writable" &lt;&lt; endl;&#xA;        return 1;&#xA;    }&#xA;&#xA;    AVPacket *packet= av_packet_alloc();&#xA;    if (!packet) {&#xA;        cerr &lt;&lt; "error: has not been created packet" &lt;&lt; endl;&#xA;    }&#xA;&#xA;    av_dump_format(formatContext, 0, device, 0);&#xA;    av_dict_free(&amp;format_opts);&#xA;    &#xA;    int socket_client = socket(AF_INET, SOCK_DGRAM, 0);&#xA;    if (socket_client == -1) {&#xA;        cerr &lt;&lt; "Error: socket!" &lt;&lt; endl;&#xA;        exit(EXIT_FAILURE);&#xA;    }&#xA;    cout &lt;&lt; "Socket has been created" &lt;&lt; endl;&#xA;&#xA;    struct sockaddr_in serverAddr = {0};&#xA;    serverAddr.sin_family = AF_INET;&#xA;    serverAddr.sin_port = htons(PORT);&#xA;    serverAddr.sin_addr.s_addr = inet_addr(IP_ADDRESS);&#xA;&#xA;    while (true) {&#xA;        if (av_read_frame(formatContext, packet) != 0) {&#xA;            cerr &lt;&lt; "Error" &lt;&lt; endl;&#xA;            av_packet_unref(packet);&#xA;            continue;&#xA;        }&#xA;&#xA;        frame->data[7] = packet->data; &#xA;        frame->linesize[7] = packet->size;&#xA;&#xA;        if (avcodec_send_frame(avctx, frame) != 0){&#xA;            cerr &lt;&lt; "Error: Frame sending is missing ---> "&lt;&lt; &amp;av_strerror &lt;&lt; endl;&#xA;            av_packet_unref(packet);&#xA;            continue;&#xA;        }&#xA;&#xA;        if (avcodec_receive_packet(avctx, packet) != 0){&#xA;            cerr &lt;&lt; "Error: Packet giving is missing! ---> " &lt;&lt; &amp;av_strerror &lt;&lt; endl;&#xA;            av_packet_unref(packet);&#xA;            continue;&#xA;        }&#xA;&#xA;        ssize_t snd = sendto(socket_client, packet->data, packet->size,&#xA;                            MSG_CONFIRM, (struct sockaddr *)&amp;serverAddr,&#xA;                            sizeof(serverAddr));&#xA;&#xA;        if(snd == -1){&#xA;            cerr &lt;&lt; "Error: Data sending failed !" &lt;&lt; endl;&#xA;            av_packet_unref(packet);&#xA;            continue;&#xA;        }else {&#xA;            cout &lt;&lt; "Data sending succesfully" &lt;&lt; endl;&#xA;        }&#xA;&#xA;        av_packet_unref(packet);&#xA;        av_frame_unref(frame);&#xA;    }&#xA;&#xA;    av_frame_free(&amp;frame);&#xA;    av_packet_free(&amp;packet);&#xA;    close(socket_client);&#xA;    avformat_free_context(formatContext);&#xA;    avformat_close_input(&amp;formatContext);&#xA;    avformat_network_deinit();&#xA;&#xA;    return 0;&#xA;}&#xA;</avinputformat></cstdio></cstdlib></string></cstring></iostream>

    &#xA;

    There is such an output, I do not understand the reason yet :

    &#xA;

    [video4linux2,v4l2 @ 0x643732e80b40] The V4L2 driver changed the video from 1080x720 to 1280x720&#xA;[video4linux2,v4l2 @ 0x643732e80b40] The V4L2 driver changed the video from 1280x720 to 640x480&#xA;[video4linux2,v4l2 @ 0x643732e80b40] The driver changed the time per frame from 1/18 to 1/30&#xA;

    &#xA;

    Is there any problem in my encoder client code ?

    &#xA;

    In addition, i can't send datas to server.

    &#xA;

  • streaming a webcam feed over rtsp using ffmpeg & ffserver to an android client

    26 juillet 2015, par Coyote

    I am trying to stream my webcam over rtsp and open the stream using android.
    I managed to get the first part working (rtsp stream) using ffserver and ffmpgeg. Here is my ffserver.conf file :

    HTTPPort 8000
    RTSPPort 8001
    HTTPBindAddress 192.168.1.74
    RTSPBindAddress 192.168.1.74
    MaxClients 100
    MaxBandwidth 10000
    NoDefaults

    <feed>
      File /tmp/witty.ffm
      FileMaxSize 20M
    </feed>

    <stream>
      Feed witty.ffm
      Format rtp
      VideoSize 640x480
      VideoQMin 1
      VideoQMax 20
      VideoFrameRate 30
      VideoBitRate 500
      AVOptionVideo flags +global_header
      VideoCodec libx264
      AVPresetVideo baseline
      NoAudio
    </stream>

    ffserver :

    ffserver -f -d ffserver.conf // luch the server

    and then I use FFmpeg to open the webcam (Mac OS)

    ffmpeg -f avfoundation -i "default" http://192.168.1.74:8000/witty.ffm

    I can open the stream from VLC but on android using a videoView i am getting an error (1,-38) and an alert view saying "can’t play this video".

  • x86/tx_float : add a standalone 15-point AVX2 transform

    28 septembre 2022, par Lynne
    x86/tx_float : add a standalone 15-point AVX2 transform
    

    Enables its use everywhere else in the framework.

    • [DH] libavutil/x86/tx_float.asm
    • [DH] libavutil/x86/tx_float_init.c