Recherche avancée

Médias (1)

Mot : - Tags -/ticket

Autres articles (55)

  • 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" (...)

  • 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

  • Changer son thème graphique

    22 février 2011, par

    Le thème graphique ne touche pas à la disposition à proprement dite des éléments dans la page. Il ne fait que modifier l’apparence des éléments.
    Le placement peut être modifié effectivement, mais cette modification n’est que visuelle et non pas au niveau de la représentation sémantique de la page.
    Modifier le thème graphique utilisé
    Pour modifier le thème graphique utilisé, il est nécessaire que le plugin zen-garden soit activé sur le site.
    Il suffit ensuite de se rendre dans l’espace de configuration du (...)

Sur d’autres sites (6009)

  • libavformat / Remuxing from mpegts to mp4 generate wrong AAC profile

    13 juillet 2017, par axeo

    I have problem with remuxing MPEG-TS to MP4 via API. AAC profile on the output file changed after remux from LC to default (codecpar->profile equals -1). I even took example from ffmpeg.org, added bitstream filter for removing ADTS headers from AAC, removed deprecated functions but the problem exists too. Video stream with this code totally the same as in input.

    This is my modified code :

    #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;
       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];
       avformat_network_init();
       av_register_all();
       if ((ret = avformat_open_input(&amp;ifmt_ctx, in_filename, 0, 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, NULL, 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, NULL);
           if (!out_stream) {
               fprintf(stderr, "Failed allocating output stream\n");
               ret = AVERROR_UNKNOWN;
               goto end;
           }
           ret = avcodec_parameters_copy(out_stream->codecpar, in_stream->codecpar);
           if (ret &lt; 0) {
               fprintf(stderr, "Failed to copy context from input to output stream codec context\n");
               goto end;
           }
    //        if (ofmt_ctx->oformat->flags &amp; AVFMT_GLOBALHEADER)
    //            out_stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;

           out_stream->codecpar->codec_tag = 0;
       }
       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");

           if (in_stream->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {

               ret = av_interleaved_write_frame(ofmt_ctx, &amp;pkt);
               if (ret &lt; 0) {
                   fprintf(stderr, "Error muxing packet\n");
               }

           } else if (in_stream->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {

               AVBSFContext *avbsctx;
               AVPacket filtered_packet = {0};

               const AVBitStreamFilter *bsf = av_bsf_get_by_name("aac_adtstoasc");

               av_bsf_alloc(bsf, &amp;avbsctx);
               avcodec_parameters_copy(avbsctx->par_in, in_stream->codecpar);
               av_bsf_init(avbsctx);
               av_bsf_send_packet(avbsctx, &amp;pkt);

               while (1) {
                   ret = av_bsf_receive_packet(avbsctx, &amp;filtered_packet);
                   if (ret &lt; 0) {
                       av_packet_unref(&amp;filtered_packet);
                       break;
                   }
                   ret = av_interleaved_write_frame(ofmt_ctx, &amp;filtered_packet);
                   av_packet_unref(&amp;filtered_packet);
               }
               av_bsf_free(&amp;avbsctx);
           }
           av_packet_unref(&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_close(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;
    }

    If I do the same operation with ffmpeg binary - all is OK. AAC-LC stream stay unchanged in output file.

    ffmpeg -i input.ts -y -bsf:a aac_adtstoasc -acodec copy -vn output.mp4

    What I’m doing wrong ? I tried look at ffmpeg sources, but it is very complicated.

    Thanks.

    P.S.
    I’ve also added this string to example out_stream->codecpar->codec_tag = 0;, otherwise I’m getting error that codec_tag is not compatible with output codec. May be I need to workaround this somehow ?

  • h264dec : fix Lossless Decoding (Profile 244) for 8x8 Intra Prediction

    15 juin 2017, par Yogender Kumar Gupta
    h264dec : fix Lossless Decoding (Profile 244) for 8x8 Intra Prediction
    

    CC : libav-stable@libav.org

    Signed-off-by : Anton Khirnov <anton@khirnov.net>

    • [DBH] libavcodec/h264_mb.c
    • [DBH] libavcodec/h264pred.c
    • [DBH] libavcodec/h264pred.h
    • [DBH] libavcodec/h264pred_template.c
  • vp9 : set color range to MPEG for intraonly profile 0

    19 août 2017, par James Zern
    vp9 : set color range to MPEG for intraonly profile 0
    

    this is undocumented in the vp9 bitstream and decoding specification
    doc, but matches libvpx

    Reviewed-by : "Ronald S. Bultje" <rsbultje@gmail.com>
    Signed-off-by : James Zern <jzern@google.com>

    • [DH] libavcodec/vp9.c