Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP 0.2

Autres articles (23)

  • Qu’est ce qu’un éditorial

    21 juin 2013, par

    Ecrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
    Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
    Vous pouvez personnaliser le formulaire de création d’un éditorial.
    Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...)

  • Contribute to translation

    13 avril 2011

    You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
    To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
    MediaSPIP is currently available in French and English (...)

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

Sur d’autres sites (5444)

  • how to convert an MPEGTS file into an FLV file by programming with libavcodec

    9 mai 2014, par Hexing B

    I wanna convert an MPEGTS file into an FLV file with libavcodec APIs(just transformat, video/audio codecs are not changed). Following is the code I found on web. After some hack, it can generate an FLV file, which could not be played. Any clue to fix this ?

    #include
    #include
    #include
    #include

    #include <libavformat></libavformat>avformat.h>
    #include <libavcodec></libavcodec>avcodec.h>
    #include <libavutil></libavutil>avutil.h>
    #include <libavutil></libavutil>rational.h>
    #include <libavdevice></libavdevice>avdevice.h>
    #include <libavutil></libavutil>mathematics.h>
    #include <libswscale></libswscale>swscale.h>

    static AVStream* add_output_stream(AVFormatContext* output_format_context, AVStream* input_stream) {
       AVCodecContext* input_codec_context = NULL;
       AVCodecContext* output_codec_context = NULL;

       AVStream* output_stream = NULL;
       output_stream = avformat_new_stream(output_format_context, 0);
       if (!output_stream) {
           printf("Call av_new_stream function failed\n");
           return NULL;
       }

       input_codec_context = input_stream->codec;
       output_codec_context = output_stream->codec;

       output_codec_context->codec_id = input_codec_context->codec_id;
       output_codec_context->codec_type = input_codec_context->codec_type;
       // output_codec_context->codec_tag = input_codec_context->codec_tag;
       output_codec_context->codec_tag = av_codec_get_tag(output_format_context->oformat->codec_tag, input_codec_context->codec_id);
       output_codec_context->bit_rate = input_codec_context->bit_rate;
       output_codec_context->extradata = input_codec_context->extradata;
       output_codec_context->extradata_size = input_codec_context->extradata_size;

       if (av_q2d(input_codec_context->time_base) * input_codec_context->ticks_per_frame > av_q2d(input_stream->time_base) &amp;&amp; av_q2d(input_stream->time_base) &lt; 1.0 / 1000) {
           output_codec_context->time_base = input_codec_context->time_base;
           output_codec_context->time_base.num *= input_codec_context->ticks_per_frame;
       } else {
           output_codec_context->time_base = input_stream->time_base;
       }
       switch (input_codec_context->codec_type) {
       case AVMEDIA_TYPE_AUDIO:
           output_codec_context->channel_layout = input_codec_context->channel_layout;
           output_codec_context->sample_rate = input_codec_context->sample_rate;
           output_codec_context->channels = input_codec_context->channels;
           output_codec_context->frame_size = input_codec_context->frame_size;
           if ((input_codec_context->block_align == 1 &amp;&amp; input_codec_context->codec_id == CODEC_ID_MP3) || input_codec_context->codec_id == CODEC_ID_AC3) {
               output_codec_context->block_align = 0;
           } else {
               output_codec_context->block_align = input_codec_context->block_align;
           }
           break;
       case AVMEDIA_TYPE_VIDEO:
           output_codec_context->pix_fmt = input_codec_context->pix_fmt;
           output_codec_context->width = input_codec_context->width;
           output_codec_context->height = input_codec_context->height;
           output_codec_context->has_b_frames = input_codec_context->has_b_frames;
           if (output_format_context->oformat->flags &amp; AVFMT_GLOBALHEADER) {
               output_codec_context->flags |= CODEC_FLAG_GLOBAL_HEADER;
           }
           // output_codec_context->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL;
           break;
       default:
           break;
       }

       return output_stream;
    }

    int main(int argc, char* argv[]) {
       const char* input = argv[1];
       const char* output_prefix = NULL;
       char* segment_duration_check = 0;
       const char* index = NULL;
       char* tmp_index = NULL;
       const char* http_prefix = NULL;
       long max_tsfiles = 0;
       double prev_segment_time = 0;
       double segment_duration = 0;

       AVInputFormat* ifmt = NULL;
       AVOutputFormat* ofmt = NULL;
       AVFormatContext* ic = NULL;
       AVFormatContext* oc = NULL;
       AVStream* video_st = NULL;
       AVStream* audio_st = NULL;
       AVCodec* codec = NULL;
       AVDictionary* pAVDictionary = NULL;

       av_register_all();
       av_log_set_level(AV_LOG_DEBUG);

       char szError[256] = {0};
       int nRet = avformat_open_input(&amp;ic, input, ifmt, &amp;pAVDictionary);
       if (nRet != 0) {
           av_strerror(nRet, szError, 256);
           printf(szError);
           printf("\n");
           printf("Call avformat_open_input function failed!\n");
           return 0;
       }

       if (avformat_find_stream_info(ic, NULL) &lt; 0) {
           printf("Call av_find_stream_info function failed!\n");
           return 0;
       }

       ofmt = av_guess_format(NULL, argv[2], NULL);
       if (!ofmt) {
           printf("Call av_guess_format function failed!\n");
           return 0;
       }

       oc = avformat_alloc_context();
       if (!oc) {
           printf("Call av_guess_format function failed!\n");
           return 0;
       }
       oc->oformat = ofmt;

       int video_index = -1, audio_index = -1;
       unsigned int i;
       for (i = 0; i &lt; ic->nb_streams &amp;&amp; (video_index &lt; 0 || audio_index &lt; 0); i++) {
           switch (ic->streams[i]->codec->codec_type) {
           case AVMEDIA_TYPE_VIDEO:
               video_index = i;
               ic->streams[i]->discard = AVDISCARD_NONE;
               video_st = add_output_stream(oc, ic->streams[i]);
               if (video_st->codec->codec_id == CODEC_ID_H264) {
                   video_st->codec->opaque = av_bitstream_filter_init("h264_mp4toannexb");
               }
               break;
           case AVMEDIA_TYPE_AUDIO:
               audio_index = i;
               ic->streams[i]->discard = AVDISCARD_NONE;
               audio_st = add_output_stream(oc, ic->streams[i]);
               if (audio_st->codec->codec_id == CODEC_ID_AAC &amp;&amp; !audio_st->codec->extradata_size) {
                   audio_st->codec->opaque = av_bitstream_filter_init("aac_adtstoasc");
               }
               break;
           default:
               ic->streams[i]->discard = AVDISCARD_ALL;
               break;
           }
       }
       codec = avcodec_find_decoder(video_st->codec->codec_id);
       if (codec == NULL) {
           printf("Call avcodec_find_decoder function failed!\n");
           return 0;
       }

       if (avcodec_open2(video_st->codec, codec, NULL) &lt; 0) {
           printf("Call avcodec_open function failed !\n");
           return 0;
       }

       if (avio_open(&amp;oc->pb, argv[2], AVIO_FLAG_WRITE) &lt; 0) {
           return 0;
       }

       if (avformat_write_header(oc, &amp;pAVDictionary)) {
           printf("Call avformat_write_header function failed.\n");
           return 0;
       }

       int decode_done = 0;
       do {
           AVPacket packet;
           decode_done = av_read_frame(ic, &amp;packet);
           if (decode_done &lt; 0) {
               break;
           }

           if (packet.stream_index == video_index &amp;&amp; (packet.flags &amp; AV_PKT_FLAG_KEY) &amp;&amp; video_st->codec->opaque != NULL) {
               AVPacket pkt = packet;
               int a = av_bitstream_filter_filter(video_st->codec->opaque, video_st->codec, NULL, &amp;pkt.data, &amp;pkt.size,
                       packet.data, packet.size, packet.flags &amp; AV_PKT_FLAG_KEY);
               if (a == 0) {
                   memmove(packet.data, pkt.data, pkt.size);
                   packet.size = pkt.size;
               } else if (a > 0) {
                   packet = pkt;
               }
           }
           else if (packet.stream_index == audio_index &amp;&amp; audio_st->codec->opaque != NULL) {
               AVPacket pkt = packet;
               int a = av_bitstream_filter_filter(audio_st->codec->opaque, audio_st->codec, NULL, &amp;pkt.data, &amp;pkt.size,
                       packet.data, packet.size, packet.flags &amp; AV_PKT_FLAG_KEY);
               if (a == 0) {
                   memmove(packet.data, pkt.data, pkt.size);
                   packet.size = pkt.size;
               } else if (a > 0) {
                   packet = pkt;
               }
           }
           nRet = av_interleaved_write_frame(oc, &amp;packet);
           if (nRet &lt; 0) {
               printf("Call av_interleaved_write_frame function failed\n");
           } else if (nRet > 0) {
               printf("End of stream requested\n");
               av_free_packet(&amp;packet);
                   break;
           }
           av_free_packet(&amp;packet);
       } while(!decode_done);

       av_write_trailer(oc);

       av_bitstream_filter_close(video_st->codec->opaque);  
       av_bitstream_filter_close(audio_st->codec->opaque);  
       avcodec_close(video_st->codec);
       unsigned int k;
       for(k = 0; k &lt; oc->nb_streams; k++) {
           av_freep(&amp;oc->streams[k]->codec);
           av_freep(&amp;oc->streams[k]);
       }
       av_free(oc);
       getchar();
       return 0;
    }
  • How to merge audio and video files with specific frame rate with ffmpeg ? [on hold]

    3 mai 2014, par Mulagala

    I want to merge to files, video file is ’one.webm’,and audio file is ’def.wav’.I have successfully merged these to files to a avi format.But i am getting 1000 frames per second.How to reduce the frame rate.I used this command to merge

    ffmpeg -i def.wav -i abc.webm -acodec copy -vcodec copy output.avi

    i am using

    linux fedora19

    Thanks in advance !

  • How can I tell if a file is a valid video stream using RVideo ?

    8 février 2012, par fenec

    I am trying to see if a file has a valid video stream using the RVideo library :

    read_file.rb :

    require &#39;rubygems&#39;
    require &#39;rvideo&#39;

    file_path="/mnt/glusterfs/video/2012/02/04/2012-02-04 1000 CSPAN United Nations Security Council Meeting (337711).mp4"
    puts file_path
    file = RVideo::Inspector.new(:file => file_path)

    I get this error :

    rbennacer@services:~$ ruby read_file.rb
    /mnt/glusterfs/video/2012/02/04/2012-02-04 1000 CSPAN United Nations Security Council Meeting (337711).mp4
    sh: Syntax error: "(" unexpected

    Even when I put a backslash before each space character and parenthesis character, I am getting that error.