Recherche avancée

Médias (91)

Autres articles (13)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

  • Configuration spécifique d’Apache

    4 février 2011, par

    Modules spécifiques
    Pour la configuration d’Apache, il est conseillé d’activer certains modules non spécifiques à MediaSPIP, mais permettant d’améliorer les performances : mod_deflate et mod_headers pour compresser automatiquement via Apache les pages. Cf ce tutoriel ; mode_expires pour gérer correctement l’expiration des hits. Cf ce tutoriel ;
    Il est également conseillé d’ajouter la prise en charge par apache du mime-type pour les fichiers WebM comme indiqué dans ce tutoriel.
    Création d’un (...)

  • Contribute to a better visual interface

    13 avril 2011

    MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
    Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.

Sur d’autres sites (4248)

  • wrong play audio samples

    8 août 2014, par Ivan Lisovich

    I have a problem with a ffmpeg and NAudio libs.
    I worked with the old ffmpeg library and there the audio plays correctly.
    read video in manage c++

    // Read frames and save to list audio frames
    while(av_read_frame(pFormatCtx, &packet) >= 0)
    {
       if(packet.stream_index == videoStream)
       {
           // reade image
       }
       else if(packet.stream_index == audioStream)
       {
           int b = av_dup_packet(&packet);
           if(b >= 0) {
               int audio_pkt_size = packet.size;
               libffmpeg::uint8_t* audio_pkt_data = packet.data;
               while(audio_pkt_size > 0)
               {
                   int got_frame = 0;
                   int len1 = libffmpeg::avcodec_decode_audio4(aCodecCtx, &frame, &got_frame, &packet);
                   if(len1 < 0)
                   {
                       /* if error, skip frame */
                       audio_pkt_size = 0;
                       break;
                   }
                   audio_pkt_data += len1;
                   audio_pkt_size -= len1;
                   if (got_frame)
                   {
                       int data_size = libffmpeg::av_samples_get_buffer_size ( NULL, aCodecCtx->channels, frame.nb_samples, aCodecCtx->sample_fmt, 1 );
                       array<byte>^ managedBuf = gcnew array<byte>(data_size);
                       System::IntPtr iptr = System::IntPtr( frame.data[0] );
                       System::Runtime::InteropServices::Marshal::Copy( iptr, managedBuf, 0, data_size );
                       audioData->Add(managedBuf);
                   }
               }
           }
       }
       // Free the packet that was allocated by av_read_frame
       libffmpeg::av_free_packet(&amp;packet);
    }
    </byte></byte>

    I return audioData to c# code and play in NAudio library
    play in c#

    var recordingFormat = new WaveFormat(reader.SampleRate, 16, reader.Channels);
    var waveProvider = new BufferedWaveProvider(recordingFormat) { DiscardOnBufferOverflow = true, BufferDuration = TimeSpan.FromMilliseconds(10000) };
    var waveOut = new DirectSoundOut();
    waveOut.Init(waveProvider);
    waveOut.Play();
    foreach (byte[] data in audioData)
    {
       waveProvider.AddSamples(data, 0, data.Length);
    }

    but audio not playing.
    what am I doing wrong ?

  • CoreAudio : how to retrieve actual sampling rate of raw data ?

    13 août 2014, par jyavenard

    When attempting to play AAC-HE content in an mp4 container, the reported sampling rate found in the mp4 container appears to be half of the actual sampling rate.

    E.g it appears as 24kHz instead of 48kHz.

    Using the FFmpeg AAC decoder, retrieving the actual sampling rate can be done by simply decoding an audio packet using

    avcodec_decode_audio4

    And looking at AVCodecContext::sample_rate which will be updated appropriately. From that it’s easy to adapt the output.

    With CoreAudio decoder, I would use a AudioConverterRef set the input and output AudioStreamBasicDescription
    and call AudioConverterFillComplexBuffer

    As the converter performs all the required internal conversion including resampling it’s fine. But it plays the content after resampling it to 24kHz (as that’s what the input AudioStreamBasicDescription contains.

    Would there be a way to retrieve the actual sampling rate as found be the decoder (rather than the demuxer) in a similar fashion as one can with FFmpeg ?

    Would prefer to avoid losing audio quality if at all possible, and not downmix data

    Thanks

  • FFmpeg AVI to MP4 transcode not playing fully in Quicktime

    11 août 2014, par Joel Kennedy

    I’m trying to transcode an AVI video to an MP4 stream on the fly using FFmpeg which can be watched on a webpage with a HTML5 video tag. I already know that MP4 isn’t designed for streaming, however it is possible if segmented so I’m still trying to use MP4 as it’s the method that I’ve found is best supported by multiple browsers.

    My stream plays fine in many browsers except for Safari on OS X, which is using Quicktime to play the HTML5 video.

    Quicktime only plays a second of the video, and then stops

    You can see in the image above that Quicktime only plays the video for a second, and then stops. I’ve tested the same video source in Google Chrome on OS X, and it continues playing fine even after a second has elapsed.

    I believe this is something to do with the set Duration in the tkhd and mdhd atoms ? User vbence described that "FFMpeg’s muxer will set the Duration in both tkhd and mdhd atoms to 0xffffffff for each track. This causes problems in some players (for example Quicktime will not play such files). You should find a tool and change it to zero (0x00000000)" in an answer here.

    Is there a way of getting FFmpeg to set a longer duration on the video to get Quicktime to continue playing it instead of stopping ? Because I’m transcoding on the fly, I wouldn’t want to use a separate tool apart from FFmpeg as in my situation I can’t transcode and save the video file, I have to transcode and pipe it to the client on request.

    The command that I’m using with FFmpeg to transcode the video is the following :

    ffmpeg -re -i
    http://www.example.com/video/stream?path=videopathhere -g 52
    -reset_timestamps 1 -vsync 1 -flags global_header -vcodec libx264 -strict -2 -f mp4 -b:v 512k -s 1280x720 -movflags frag_keyframe+empty_moov+faststart pipe :

    Any help or pointers in the right direction would be greatly appreciated.