Recherche avancée

Médias (0)

Mot : - Tags -/formulaire

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

Autres articles (95)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • 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 (7759)

  • Merge remote-tracking branch ’qatar/master’

    5 septembre 2013, par Michael Niedermayer
    Merge remote-tracking branch ’qatar/master’
    

    * qatar/master :
    matroskaenc : Allow chapters to be written in trailer

    Conflicts :
    libavformat/matroskaenc.c

    Merged-by : Michael Niedermayer <michaelni@gmx.at>

    • [DH] libavformat/avformat.h
    • [DH] libavformat/matroskaenc.c
  • ffmpeg : Stream from rstp to http

    16 janvier 2019, par Gorka Sanz Monllor

    I am trying to transcode from rstp to http using ffmpeg and I do not know exactly the comand . I execute the following comand :
    ffmpeg -re -i rtsp ://***********************/Streaming/Channels/101 ?transportmode=unicast -c copy -f mpegts http://localhost:8081
    and have the following result :

    av_interleaved_write_frame() : Broken pipe
    Error writing trailer of http://localhost:8081 : Broken pipe
    Any idea on what options to use ? Any idea on another way of converting from rstp streaming to http
    Thanks
    Gorka

  • avformat_write_header() return -22 ? [duplicate]

    9 janvier 2019, par TTGroup

    This question already has an answer here :

    I’m using the following code for Re-Stream the exist RTSP stream.

    But it is failed at avformat_write_header(), return value is -22.

    I have searched many times but there is not any solution.

    int ReStream()
       {
           AVOutputFormat *ofmt = NULL;
           //Input AVFormatContext and Output AVFormatContext
           AVFormatContext *ifmt_ctx = NULL, *ofmt_ctx = NULL;
           AVPacket pkt;
           const char *in_filename, *out_filename;
           int ret, i;
           int videoindex = -1;
           int frame_index = 0;
           int64_t start_time = 0;
           //in_filename  = "cuc_ieschool.mov";
           //in_filename  = "cuc_ieschool.mkv";
           //in_filename  = "cuc_ieschool.ts";
           //in_filename  = "cuc_ieschool.mp4";
           //in_filename  = "cuc_ieschool.h264";
           in_filename = "rtsp://admin:Admin@123@192.168.1.81:554/Streaming/Channels/101?transportmode=unicast&amp;profile=Profile_1";//输入URL(Input file URL)
                                            //in_filename  = "shanghai03_p.h264";

           out_filename = "rtsp://localhost/publishlive/livestream";//输出 URL(Output URL)[RTMP]
                                                                    //out_filename = "rtp://233.233.233.233:6666";//输出 URL(Output URL)[UDP]

           av_register_all();
           //Network
           avformat_network_init();
           //Input
           if ((ret = avformat_open_input(&amp;ifmt_ctx, in_filename, 0, 0)) &lt; 0)
           {
               printf("Could not open input file.");
               goto end;
           }
           if ((ret = avformat_find_stream_info(ifmt_ctx, 0)) &lt; 0)
           {
               printf("Failed to retrieve input stream information");
               goto end;
           }

           for (i = 0; i &lt; ifmt_ctx->nb_streams; i++)
           {
               if (ifmt_ctx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
               {
                   videoindex = i;
                   break;
               }
           }

           av_dump_format(ifmt_ctx, 0, in_filename, 0);

           //Output
           ret = avformat_alloc_output_context2(&amp;ofmt_ctx, NULL, "rtsp", out_filename); //RTMP
                                                                                 //avformat_alloc_output_context2(&amp;ofmt_ctx, NULL, "mpegts", out_filename);//UDP
           if (ret &lt; 0)
           {
               char strErr[STR_LENGTH_256];
               av_strerror(AVERROR(ret), strErr, STR_LENGTH_256);
               CommonGlobalUlti::UltiFunctions::WriteRuntimeLogs("avformat_alloc_output_context2() " + gcnew String(strErr));
               goto end;
           }
           if (!ofmt_ctx)
           {
               printf("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++)
           {
               //Create output AVStream according to input AVStream
               AVStream *in_stream = ifmt_ctx->streams[i];
               AVStream *out_stream = avformat_new_stream(ofmt_ctx, in_stream->codec->codec);
               if (!out_stream)
               {
                   printf("Failed allocating output stream\n");
                   ret = AVERROR_UNKNOWN;
                   goto end;
               }
               //Copy the settings of AVCodecContext
               ret = avcodec_copy_context(out_stream->codec, in_stream->codec);
               if (ret &lt; 0)
               {
                   printf("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 |= CODEC_FLAG_GLOBAL_HEADER;
           }

           //Dump Format------------------
           av_dump_format(ofmt_ctx, 0, out_filename, 1);

           //Open output URL
           if (!(ofmt->flags &amp; AVFMT_NOFILE))
           {
               ret = avio_open(&amp;ofmt_ctx->pb, out_filename, AVIO_FLAG_WRITE);
               if (ret &lt; 0)
               {
                   char strErr[STR_LENGTH_256];
                   av_strerror(AVERROR(ret), strErr, STR_LENGTH_256);
                   CommonGlobalUlti::UltiFunctions::WriteRuntimeLogs("avio_open() " + gcnew String(strErr));
                   printf("Could not open output URL '%s'", out_filename);
                   goto end;
               }
           }
           //Write file header
           ret = avformat_write_header(ofmt_ctx, NULL);
           if (ret &lt; 0)
           {
               char strErr[STR_LENGTH_256];
               av_strerror(AVERROR(ret), strErr, STR_LENGTH_256);
               CommonGlobalUlti::UltiFunctions::WriteRuntimeLogs("avformat_write_header() " + gcnew String(strErr));
               printf("Error occurred when opening output URL\n");
               goto end;
           }

           start_time = av_gettime();
           while (1)
           {
               AVStream *in_stream, *out_stream;
               //Get an AVPacket
               ret = av_read_frame(ifmt_ctx, &amp;pkt);
               if (ret &lt; 0)
                   break;
               //FIX:No PTS (Example: Raw H.264)
               //Simple Write PTS
               if (pkt.pts == AV_NOPTS_VALUE)
               {
                   //Write PTS
                   AVRational time_base1 = ifmt_ctx->streams[videoindex]->time_base;
                   //Duration between 2 frames (us)
                   int64_t calc_duration = (double)AV_TIME_BASE / av_q2d(ifmt_ctx->streams[videoindex]->r_frame_rate);
                   //Parameters
                   pkt.pts = (double)(frame_index*calc_duration) / (double)(av_q2d(time_base1)*AV_TIME_BASE);
                   pkt.dts = pkt.pts;
                   pkt.duration = (double)calc_duration / (double)(av_q2d(time_base1)*AV_TIME_BASE);
               }
               //Important:Delay => ko can sleep khi la Camera, chi can khi File
               if (pkt.stream_index == videoindex)
               {
                   AVRational time_base = ifmt_ctx->streams[videoindex]->time_base;
                   AVRational time_base_q = { 1,AV_TIME_BASE };
                   int64_t pts_time = av_rescale_q(pkt.dts, time_base, time_base_q);
                   int64_t now_time = av_gettime() - start_time;
                   if (pts_time > now_time)
                       av_usleep(pts_time - now_time);
               }

               in_stream = ifmt_ctx->streams[pkt.stream_index];
               out_stream = ofmt_ctx->streams[pkt.stream_index];
               /* copy packet */
               //Convert PTS/DTS
               pkt.pts = av_rescale_q_rnd(pkt.pts, in_stream->time_base, out_stream->time_base, (AVRounding)(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));
               pkt.dts = av_rescale_q_rnd(pkt.dts, in_stream->time_base, out_stream->time_base, (AVRounding)(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;
               //Print to Screen
               if (pkt.stream_index == videoindex)
               {
                   printf("Send %8d video frames to output URL\n", frame_index);
                   frame_index++;
               }
               //ret = av_write_frame(ofmt_ctx, &amp;pkt);
               ret = av_interleaved_write_frame(ofmt_ctx, &amp;pkt);
               if (ret &lt; 0)
               {
                   printf("Error muxing packet\n");
                   break;
               }

               av_free_packet(&amp;pkt);

           } //End while (1)

           //Write file trailer
           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_close(ofmt_ctx->pb);
           avformat_free_context(ofmt_ctx);
           if (ret &lt; 0 &amp;&amp; ret != AVERROR_EOF) {
               printf("Error occurred.\n");
               return -1;
           }
           return 0;
       }