Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP 0.2

Autres articles (74)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

Sur d’autres sites (10557)

  • Android : How to play MP3 files with ID3 tags using FFMPEG

    16 juillet 2012, par Vipul Purohit

    I am trying to play various sound files using FFMPEG lib in android. I have managed to play most files but some file Example : MP3 files with ID3 tag are not playing. I tried playing files by taking reference of various example but didn't get any success.

    Here is my native side code :

    #include
    #include
    #include
    #include <android></android>log.h>

    #include "libavcodec/avcodec.h"
    #include "libavformat/avformat.h"

    #define LOG_TAG "mylib"
    #define LOGI(...)  __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
    #define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)

    #define AUDIO_INBUF_SIZE 20480
    #define AUDIO_REFILL_THRESH 4096

    void Java_ru_dzakhov_ffmpeg_test_MainActivity_createEngine(JNIEnv* env, jclass clazz)
       {
           avcodec_init();

           av_register_all();


       }

       jstring Java_ru_dzakhov_ffmpeg_test_MainActivity_loadFile(JNIEnv* env, jobject obj,jstring file,jbyteArray array)
       {
           {
                   jboolean            isfilenameCopy;
                   const char *        filename = (*env)->GetStringUTFChars(env, file, &amp;isfilenameCopy);
                   int audioStreamIndex;
                   AVCodec *codec;
                   AVCodecContext *c= NULL;
                   AVFormatContext * pFormatCtx;
                   AVCodecContext * aCodecCtx;
                   int out_size, len, audioStream=-1, i, err;
                   FILE *f, *outfile;
                   uint8_t *outbuf;
                   uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
                   AVPacket avpkt;
                   jclass              cls = (*env)->GetObjectClass(env, obj);
                   jmethodID           play = (*env)->GetMethodID(env, cls, "playSound", "([BI)V");//At the begining of your main function

                   LOGE("source file name is %s", filename);

                      avcodec_init();

                      av_register_all();

                      LOGE("Stage 1");
                      /* get format somthing of source file to AVFormatContext */
                      int lError;
                      if ((lError = av_open_input_file(&amp;pFormatCtx, filename, NULL, 0, NULL)) !=0 ) {
                          LOGE("Error open source file: %d", lError);
                          exit(1);
                      }
                      if ((lError = av_find_stream_info(pFormatCtx)) &lt; 0) {
                          LOGE("Error find stream information: %d", lError);
                          exit(1);
                      }
                      LOGE("Stage 1.5");
                      LOGE("audio format: %s", pFormatCtx->iformat->name);
                      LOGE("audio bitrate: %d", pFormatCtx->bit_rate);



                      audioStreamIndex = av_find_best_stream(pFormatCtx, AVMEDIA_TYPE_AUDIO, -1, -1, &amp;codec, 0);

    //                 audioStreamIndex=-1;
    //                 LOGE("nb_stream %d", pFormatCtx->nb_streams);
    //                     for(i=0; inb_streams; i++)
    //                     {
    //                         LOGE("nb_stream %d", pFormatCtx->nb_streams);
    //                         if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO)
    //                         {
    //                             audioStream=i;
    //                             break;
    //                         }
    //                     }
    //
    //                     if(audioStream==-1)
    //                     {
    //                         LOGE("Cannot find audio");
    //                     }

                         LOGE("audioStreamIndex %d", audioStreamIndex);
    //                    if (audioStreamIndex == AVERROR_STREAM_NOT_FOUND) {
    //                        LOGE(1, "cannot find a audio stream");
    //                        exit(1);
    //                    } else if (audioStreamIndex == AVERROR_DECODER_NOT_FOUND) {
    //                        LOGE(1, "audio stream found, but no decoder is found!");
    //                        exit(1);
    //                    }
                         LOGE("audio codec: %s", codec->name);

                         /* get codec somthing of audio stream to AVCodecContext */
                         aCodecCtx = pFormatCtx->streams[audioStreamIndex]->codec;
                         if (avcodec_open(aCodecCtx, codec) &lt; 0) {
                         LOGE("cannot open the audio codec!");
                             exit(1);
                         }

                   printf("Audio decoding\n");
                   LOGE("Stage 1.7");
                   LOGE("S");
                   codec = avcodec_find_decoder(aCodecCtx->codec_id);
                   LOGE("Stage 1.8");
                   if (!codec) {
                       LOGE("codec not found\n");
                       exit(1);
                   }
                   LOGE("Stage 2");
    //              c= avcodec_alloc_context();
                   LOGE("Stage 3");
                   /* open it */
                   if (avcodec_open(aCodecCtx, codec) &lt; 0) {
                       LOGE("could upper");
                       fprintf(stderr, "could not open codec\n");
                       LOGE("could not open codec");

                   }
                   LOGE("Stage 4");
                   outbuf = malloc(AVCODEC_MAX_AUDIO_FRAME_SIZE);

                   f = fopen(filename, "rb");
                   if (!f) {
                       fprintf(stderr, "could not open %s\n", filename);
                       LOGE("could not open");
                       exit(1);
                   }

                   /* decode until eof */
                   avpkt.data = inbuf;
                   avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, f);
                   LOGE("Stage 5");


                   while (avpkt.size > 0) {
    //                  LOGE("Stage 6");
                       out_size = (AVCODEC_MAX_AUDIO_FRAME_SIZE/3)*2;
                       len = avcodec_decode_audio3(aCodecCtx, (int16_t *)outbuf, &amp;out_size, &amp;avpkt);
                       LOGE("data_size %d len %d", out_size, len);
                       if (len &lt; 0) {
                           fprintf(stderr, "Error while decoding\n");
                           LOGE("DECODING ERROR");
                           LOGE("DECODING ERROR %d", len);
                           exit(1);
                       }
    //                  LOGE("Stage 7");
                       if (out_size > 0) {
                           /* if a frame has been decoded, output it */
    //                      LOGE("Stage 8");
                           jbyte *bytes = (*env)->GetByteArrayElements(env, array, NULL);
                           memcpy(bytes, outbuf, out_size); //
                           (*env)->ReleaseByteArrayElements(env, array, bytes, 0);
                           (*env)->CallVoidMethod(env, obj, play, array, out_size);
    //                      LOGE("DECODING ERROR5");
                       }
                       LOGE("Stage 9");
                       avpkt.size -= len;
                       avpkt.data += len;
                       if (avpkt.size &lt; AUDIO_REFILL_THRESH) {
                           /* Refill the input buffer, to avoid trying to decode
                            * incomplete frames. Instead of this, one could also use
                            * a parser, or use a proper container format through
                            * libavformat. */
                           memmove(inbuf, avpkt.data, avpkt.size);
                           avpkt.data = inbuf;
                           len = fread(avpkt.data + avpkt.size, 1,
                                       AUDIO_INBUF_SIZE - avpkt.size, f);
                           if (len > 0)
                               avpkt.size += len;
                       }
                   }
                   LOGE("Stage 12");
                   fclose(f);
                   free(outbuf);

                   avcodec_close(c);
                   av_free(c);

           }
       }

    Sorry for a rough code but I am testing on this code.

    I found the reason that the mp3 file has ID3 info, but I don't handle this, all the ID3 info data is decode as frame data, so the right frame header sign 0xFFE00000 can't be found and the method "avcodec_decode_audio3" return -1.

    I found this in question mp3 decoding using ffmpeg API (Header missing)

    If anyone can help me handle and play file with ID3 tags in MP3 and similar for other formats.

  • Give input to ffmpeg using named pipes

    1er septembre 2012, par Akilan

    I have a C program which generates a series of images and I wanted to make them into a video which should be streamed in real time or stored in a file. While reading up ffmpeg documentation I came across repeatedly that ffmpeg can take input from named pipes.

    My question is in what format should the files given into the pipe should be and how to input the files into the pipe.

  • Program hangs while using ffprobe on file with teletext subtitles

    6 août 2012, par Jon

    Having a problem running ffprobe on an MKV file that contains teletext subtitles. Code is in a C# library and works fine for other MKV files.

    Running the latest :

    ffprobe -v

    ffprobe version N-42347-g299387e Copyright (c) 2007-2012 the FFmpeg developers
     built on Jul  8 2012 15:44:54 with gcc 4.7.1

    Code :

    string args = string.Format("-show_format -show_streams \"{0}\"", FileName);

    Process p = new Process();
    p.StartInfo = new ProcessStartInfo(FFPROBE_PATH);
    p.StartInfo.Arguments = args;
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.WorkingDirectory = System.IO.Directory.GetCurrentDirectory();
    p.Start();

    while (!p.HasExited)
    {
       System.Threading.Thread.Sleep(100);
    }

    string output = p.StandardOutput.ReadToEnd().Replace("\r\n", "\n");

    The filename has a UNC path - tried using the FileName parameter but got an error, hence passing the filename via the arguments.

    If I run the following commandline :

    ffprobe -show_format -show_streams "\192.168.10.1\content\Breakfast At Tiffany's sample preview.mkv"

    I get the following output (note the errors - "Unsupported codec with id ...") :

    ffprobe -show_format -show_streams "\\192.168.10.1\content\Breakfast At Tiffany&#39;s sample preview.mkv"

    ffprobe version N-42347-g299387e Copyright (c) 2007-2012 the FFmpeg developers
     built on Jul  8 2012 15:44:54 with gcc 4.7.1
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-fr
    ei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-li
    bmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libutv
    ideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --e
    nable-zlib
     libavutil      51. 64.100 / 51. 64.100
     libavcodec     54. 33.100 / 54. 33.100
     libavformat    54. 15.102 / 54. 15.102
     libavdevice    54.  1.100 / 54.  1.100
     libavfilter     3.  1.100 /  3.  1.100
     libswscale      2.  1.100 /  2.  1.100
     libswresample   0. 15.100 /  0. 15.100
     libpostproc    52.  0.100 / 52.  0.100
    Input #0, matroska,webm, from &#39;c:\dev\content\Breakfast At Tiffany&#39;s sample preview.mkv&#39;:
     Metadata:
       creation_time   : 2011-12-14 21:27:01
     Duration: 00:01:02.77, start: 0.000000, bitrate: 4071 kb/s
       Stream #0:0: Video: h264 (High), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
       Metadata:
         title           : x264   1920x1080   Bitrate=4776 kbps   AvQuant=21.406   Rip by ShivaShanti
       Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), s16, 448 kb/s (default)
       Metadata:
         title           : English Ac3 5.1 chnls 448 kbps
       Stream #0:2(ita): Audio: ac3, 48000 Hz, stereo, s16, 224 kb/s
       Metadata:
         title           : Italian Ac3 2.0 chnls 224  kbps
       Stream #0:3(eng): Subtitle: text (default)
       Metadata:
         title           : english
       Stream #0:4(ita): Subtitle: text
       Metadata:
         title           : italian
       Stream #0:5(dan): Subtitle: text
       Metadata:
         title           : danish
       Stream #0:6(dut): Subtitle: text
       Metadata:
         title           : dutch
       Stream #0:7(fin): Subtitle: text
       Metadata:
         title           : finnish
       Stream #0:8(fre): Subtitle: text
       Metadata:
         title           : french
       Stream #0:9(ger): Subtitle: text
       Metadata:
         title           : german
       Stream #0:10(nor): Subtitle: text
       Metadata:
         title           : norwegian
       Stream #0:11(spa): Subtitle: text
       Metadata:
         title           : spanish
       Stream #0:12(swe): Subtitle: text
       Metadata:
         title           : swedish
       Stream #0:13(eng): Subtitle: text
       Metadata:
         title           : english hearig impaired
    Unsupported codec with id 94210 for input stream 3
    Unsupported codec with id 94210 for input stream 4
    Unsupported codec with id 94210 for input stream 5
    Unsupported codec with id 94210 for input stream 6
    Unsupported codec with id 94210 for input stream 7
    Unsupported codec with id 94210 for input stream 8
    Unsupported codec with id 94210 for input stream 9
    Unsupported codec with id 94210 for input stream 10
    Unsupported codec with id 94210 for input stream 11
    Unsupported codec with id 94210 for input stream 12
    Unsupported codec with id 94210 for input stream 13
    [STREAM]
    index=0
    codec_name=h264
    codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
    profile=High
    codec_type=video
    codec_time_base=1001/48000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    width=1920
    height=1080
    has_b_frames=2
    sample_aspect_ratio=1:1
    display_aspect_ratio=16:9
    pix_fmt=yuv420p
    level=41
    timecode=N/A
    is_avc=1
    nal_length_size=4
    id=N/A
    r_frame_rate=24000/1001
    avg_frame_rate=24000/1001
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:title=x264   1920x1080   Bitrate=4776 kbps   AvQuant=21.406   Rip by ShivaShanti
    [/STREAM]
    [STREAM]
    index=1
    codec_name=ac3
    codec_long_name=ATSC A/52A (AC-3)
    profile=unknown
    codec_type=audio
    codec_time_base=1/48000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    sample_fmt=s16
    sample_rate=48000
    channels=6
    bits_per_sample=0
    dmix_mode=-1
    ltrt_cmixlev=-1.000000
    ltrt_surmixlev=-1.000000
    loro_cmixlev=-1.000000
    loro_surmixlev=-1.000000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=448000
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=eng
    TAG:title=English Ac3 5.1 chnls 448 kbps
    [/STREAM]
    [STREAM]
    index=2
    codec_name=ac3
    codec_long_name=ATSC A/52A (AC-3)
    profile=unknown
    codec_type=audio
    codec_time_base=1/48000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    sample_fmt=s16
    sample_rate=48000
    channels=2
    bits_per_sample=0
    dmix_mode=-1
    ltrt_cmixlev=-1.000000
    ltrt_surmixlev=-1.000000
    loro_cmixlev=-1.000000
    loro_surmixlev=-1.000000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=224000
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=ita
    TAG:title=Italian Ac3 2.0 chnls 224  kbps
    [/STREAM]
    [STREAM]
    index=3
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=eng
    TAG:title=english
    [/STREAM]
    [STREAM]
    index=4
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=ita
    TAG:title=italian
    [/STREAM]
    [STREAM]
    index=5
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=dan
    TAG:title=danish
    [/STREAM]
    [STREAM]
    index=6
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=dut
    TAG:title=dutch
    [/STREAM]
    [STREAM]
    index=7
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=fin
    TAG:title=finnish
    [/STREAM]
    [STREAM]
    index=8
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=fre
    TAG:title=french
    [/STREAM]
    [STREAM]
    index=9
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=ger
    TAG:title=german
    [/STREAM]
    [STREAM]
    index=10
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=nor
    TAG:title=norwegian
    [/STREAM]
    [STREAM]
    index=11
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=spa
    TAG:title=spanish
    [/STREAM]
    [STREAM]
    index=12
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=swe
    TAG:title=swedish
    [/STREAM]
    [STREAM]
    index=13
    codec_name=unknown
    codec_long_name=unknown
    profile=unknown
    codec_type=subtitle
    codec_time_base=1/1000
    codec_tag_string=[0][0][0][0]
    codec_tag=0x0000
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/1000
    start_time=0.000000
    duration=N/A
    bit_rate=N/A
    nb_frames=N/A
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:language=eng
    TAG:title=english hearig impaired
    [/STREAM]
    [FORMAT]
    filename=c:\dev\content\Breakfast At Tiffany&#39;s sample preview.mkv
    nb_streams=14
    format_name=matroska,webm
    format_long_name=Matroska/WebM file format
    start_time=0.000000
    duration=62.776000
    size=31947628
    bit_rate=4071317
    TAG:creation_time=2011-12-14 21:27:01
    [/FORMAT]

    My problem is, the process appears to hang. I took out the 'CreateNoWindow' option and, of course, I get a big blank window onscreen that normally just flashs by on a normal file. With the teletext subtitle file however, it persists. If I manually close it, the program continues and I seem to get the output I want.

    So my question is, how can I debug this further, to find out why this is hanging and how to handle the error (or simply ignore it) and continue ?