Recherche avancée

Médias (0)

Mot : - Tags -/upload

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

Autres articles (94)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • MediaSPIP : Modification des droits de création d’objets et de publication définitive

    11 novembre 2010, par

    Par défaut, MediaSPIP permet de créer 5 types d’objets.
    Toujours par défaut les droits de création et de publication définitive de ces objets sont réservés aux administrateurs, mais ils sont bien entendu configurables par les webmestres.
    Ces droits sont ainsi bloqués pour plusieurs raisons : parce que le fait d’autoriser à publier doit être la volonté du webmestre pas de l’ensemble de la plateforme et donc ne pas être un choix par défaut ; parce qu’avoir un compte peut servir à autre choses également, (...)

Sur d’autres sites (9236)

  • Trying to convert an RTSP stream to a HSL file, but get a "Failed to Open Segment" error

    1er juin 2021, par Alvydas Juodikis

    These are the linux commands I ran on ubuntu 20.04 to convert an rtsp stream to a HLS file. I was trying to then display it onto my html webserver to run a live video but I'm stuck at an error.

    


    ffmpeg -fflags nobuffer \&#xA; -rtsp_transport tcp \&#xA; -i <my rtsp="rtsp" url="url"> \&#xA; -vsync 0 \&#xA; -copyts \&#xA; -vcodec copy \&#xA; -movflags frag_keyframe&#x2B;empty_moov \&#xA; -an \&#xA; -hls_flags delete_segments&#x2B;append_list \&#xA; -f segment \&#xA; -segment_list_flags live \&#xA; -segment_time 0.5 \&#xA; -segment_list_size 1 \&#xA; -segment_format mpegts \&#xA; -segment_list Home/Desktop/fmpegsolution/index.m3u8 \&#xA; -segment_list_type m3u8 \&#xA; -segment_list_entry_prefix Home/Desktop/fmpegsolution/ \&#xA; Home/Desktop/fmpegsolution/%3d.ts&#xA;</my>

    &#xA;

    I'm using an example from this link :&#xA;https://girishjoshi.io/post/ffmpeg-rtsp-to-hls/

    &#xA;

    I try to generate my file into a directory located in my desktop called fmpegsolution (hence the output path Home/Desktop/fmpegsolution)

    &#xA;

    The error :

    &#xA;

    When running this on terminal, the error comes out to :&#xA;[segment @ 0x558c82e11ec0] Opening &#x27;Home/Desktop/fmpegsolution/000.ts&#x27; for writing [segment @ 0x558c82e11ec0] Failed to open segment &#x27;Home/Desktop/fmpegsolution/000.ts&#x27; Could not write header for output file #0 (incorrect codec parameters ?): No such file or directory

    &#xA;

    My issue is related to the folder or directory but it definitely exists. I even tried creating a "%3d.ts" blank file (000.ts) but that had no effect. Could use some help. Thanks for your time.

    &#xA;

  • Revision 30295 : Amélioration de l’encodage multiple

    28 juillet 2009, par kent1@… — Log

    Amélioration de l’encodage multiple

  • Programmatically Streaming with ffmpeg library using linux system video device

    21 novembre 2019, par zafer sevim

    I am able to stream a static mp4 file coded with h264 in my code.

    But when I use linux video device /dev/video0 as input in my program, it gives this error :

    failed to open file `udp://xxx.xxx.xxx.xxx:28000` or configure filtergraph.

    I’m not using an encoder in my program yet. I don’t understand why I can’t stream directly from the video camera.

    The static mp4 file is encoded in h264. My code streaming is it as it is, but when I try to stream the camera with the video4linux2 format, it does not play.

    Do I need to encode the camera’s output with any format ?

    #include <libavutil></libavutil>timestamp.h>
    #include <libavformat></libavformat>avformat.h>
    static void log_packet(const AVFormatContext *fmt_ctx, const AVPacket *pkt, const char *tag)
    {
       AVRational *time_base = &amp;fmt_ctx->streams[pkt->stream_index]->time_base;
       printf("%s: pts:%s pts_time:%s dts:%s dts_time:%s duration:%s duration_time:%s stream_index:%d\n",
              tag,
              av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, time_base),
              av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, time_base),
              av_ts2str(pkt->duration), av_ts2timestr(pkt->duration, time_base),
              pkt->stream_index);
    }
    int main(int argc, char **argv)
    {
       AVOutputFormat *ofmt = NULL;
       AVFormatContext *ifmt_ctx = NULL, *ofmt_ctx = NULL;
       AVPacket pkt;
       const char *in_filename, *out_filename;
       AVInputFormat *inputFormat =av_find_input_format("video4linux2");

       int ret, i;
       /*if (argc &lt; 3) {
           printf("usage: %s input output\n"
                  "API example program to remux a media file with libavformat and libavcodec.\n"
                  "The output format is guessed according to the file extension.\n"
                  "\n", argv[0]);
           return 1;
       }
       //in_filename  = argv[1];
      // out_filename = argv[2];*/

       in_filename  = "/dev/video0";
       out_filename = "udp://xxx.xxx.xxx.xxx:28000";

       avdevice_register_all();
       avcodec_register_all();
       av_register_all();
       //Networkq
       avformat_network_init();


       if ((ret = avformat_open_input(&amp;ifmt_ctx, in_filename, inputFormat, 0)) &lt; 0) {
           fprintf(stderr, "Could not open input file '%s'", in_filename);
           goto end;
       }

       if ((ret = avformat_find_stream_info(ifmt_ctx, 0)) &lt; 0) {
           fprintf(stderr, "Failed to retrieve input stream information");
           goto end;
       }

       av_dump_format(ifmt_ctx, 0, in_filename, 0);
       avformat_alloc_output_context2(&amp;ofmt_ctx, NULL, "mpegts", out_filename);
       if (!ofmt_ctx) {
           fprintf(stderr, "Could not create output context\n");
           ret = AVERROR_UNKNOWN;
           goto end;
       }
       ofmt = ofmt_ctx->oformat;
       for (i = 0; i &lt; ifmt_ctx->nb_streams; i++) {
           AVStream *in_stream = ifmt_ctx->streams[i];
           AVStream *out_stream = avformat_new_stream(ofmt_ctx, in_stream->codec->codec);
           if (!out_stream) {
               fprintf(stderr, "Failed allocating output stream\n");
               ret = AVERROR_UNKNOWN;
               goto end;
           }
           ret = avcodec_copy_context(out_stream->codec, in_stream->codec);
           if (ret &lt; 0) {
               fprintf(stderr, "Failed to copy context from input to output stream codec context\n");
               goto end;
           }
           out_stream->codec->codec_tag = 0;
           if (ofmt_ctx->oformat->flags &amp; AVFMT_GLOBALHEADER)
               out_stream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
       }
       av_dump_format(ofmt_ctx, 0, out_filename, 1);
       if (!(ofmt->flags &amp; AVFMT_NOFILE)) {
           ret = avio_open(&amp;ofmt_ctx->pb, out_filename, AVIO_FLAG_WRITE);
           if (ret &lt; 0) {
               fprintf(stderr, "Could not open output file '%s'", out_filename);
               goto end;
           }
       }
       ret = avformat_write_header(ofmt_ctx, NULL);
       if (ret &lt; 0) {
           fprintf(stderr, "Error occurred when opening output file\n");
           goto end;
       }
       while (1) {
           AVStream *in_stream, *out_stream;
           ret = av_read_frame(ifmt_ctx, &amp;pkt);
           if (ret &lt; 0)
               break;
           in_stream  = ifmt_ctx->streams[pkt.stream_index];
           out_stream = ofmt_ctx->streams[pkt.stream_index];
           log_packet(ifmt_ctx, &amp;pkt, "in");
           /* copy packet */
           pkt.pts = av_rescale_q_rnd(pkt.pts, in_stream->time_base, out_stream->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
           pkt.dts = av_rescale_q_rnd(pkt.dts, in_stream->time_base, out_stream->time_base, AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX);
           pkt.duration = av_rescale_q(pkt.duration, in_stream->time_base, out_stream->time_base);
           pkt.pos = -1;
           log_packet(ofmt_ctx, &amp;pkt, "out");
           ret = av_interleaved_write_frame(ofmt_ctx, &amp;pkt);
           if (ret &lt; 0) {
               fprintf(stderr, "Error muxing packet\n");
               break;
           }
           av_free_packet(&amp;pkt);
       }
       av_write_trailer(ofmt_ctx);
    end:
       avformat_close_input(&amp;ifmt_ctx);
       /* close output */
       if (ofmt_ctx &amp;&amp; !(ofmt->flags &amp; AVFMT_NOFILE))
           avio_closep(&amp;ofmt_ctx->pb);
       avformat_free_context(ofmt_ctx);
       if (ret &lt; 0 &amp;&amp; ret != AVERROR_EOF) {
           fprintf(stderr, "Error occurred: %s\n", av_err2str(ret));
           return 1;
       }
       return 0;
    }

    and output is

    pi@raspberrypi:~/source_code $ ./deneme_4
    Input #0, video4linux2,v4l2, from '/dev/video0':
     Duration: N/A, start: 74626.180310, bitrate: 235929 kb/s
       Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1024x768, 235929 kb/s, 25 fps, 25 tbr, 1000k tbn, 1000k tbc
    Output #0, mpegts, to 'udp://xxx.xxx.xxx.xxx:28000':
       Stream #0:0: Unknown: none
    [mpegts @ 0x1d6a5c0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    in: pts:74626180310 pts_time:74626.2 dts:74626180310 dts_time:74626.2 duration:40000 duration_time:0.04 stream_index:0
    out: pts:6716356228 pts_time:74626.2 dts:6716356228 dts_time:74626.2 duration:3600 duration_time:0.04 stream_index:0
    in: pts:74626408490 pts_time:74626.4 dts:74626408490 dts_time:74626.4 duration:40000 duration_time:0.04 stream_index:0
    out: pts:6716376764 pts_time:74626.4 dts:6716376764 dts_time:74626.4 duration:3600 duration_time:0.04 stream_index:0
    in: pts:74626665690 pts_time:74626.7 dts:74626665690 dts_time:74626.7 duration:40000 duration_time:0.04 stream_index:0
    out: pts:6716399912 pts_time:74626.7 dts:6716399912 dts_time:74626.7 duration:3600 duration_time:0.04 stream_index:0
    in: pts:74626923514 pts_time:74626.9 dts:74626923514 dts_time:74626.9 duration:40000 duration_time:0.04 stream_index:0
    out: pts:6716423116 pts_time:74626.9 dts:6716423116 dts_time:74626.9 duration:3600 duration_time:0.04 stream_index:0
    in: pts:74627180935 pts_time:74627.2 dts:74627180935 dts_time:74627.2 duration:40000 duration_time:0.04 stream_index:0
    out: pts:6716446284 pts_time:74627.2 dts:6716446284 dts_time:74627.2 duration:3600 duration_time:0.04 stream_index:0
    in: pts:74627439174 pts_time:74627.4 dts:74627439174 dts_time:74627.4 duration:40000 duration_time:0.04 stream_index:0
    out: pts:6716469526 pts_time:74627.4 dts:6716469526 dts_time:74627.4 duration:3600 duration_time:0.04 stream_index:0
    in: pts:74627695789 pts_time:74627.7 dts:74627695789 dts_time:74627.7 duration:40000 duration_time:0.04 stream_index:0
    out: pts:6716492621 pts_time:74627.7 dts:6716492621 dts_time:74627.7 duration:3600 duration_time:0.04 stream_index:0
    in: pts:74627951834 pts_time:74628 dts:74627951834 dts_time:74628 duration:40000 duration_time:0.04 stream_index:0
    out: pts:6716515665 pts_time:74628 dts:6716515665 dts_time:74628 duration:3600 duration_time:0.04 stream_index:0
    in: pts:74628208064 pts_time:74628.2 dts:74628208064 dts_time:74628.2 duration:40000 duration_time:0.04 stream_index:0
    out: pts:6716538726 pts_time:74628.2 dts:6716538726 dts_time:74628.2 duration:3600 duration_time:0.04 stream_index:0
    ^C