Recherche avancée

Médias (91)

Autres articles (82)

  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (12879)

  • Merge commit '2bbb5abd877104fa9bc342c521bb49bc1aad50ce'

    20 mai 2017, par Clément Bœsch
    Merge commit '2bbb5abd877104fa9bc342c521bb49bc1aad50ce'
    

    * commit '2bbb5abd877104fa9bc342c521bb49bc1aad50ce' :
    build : Map -Wall compiler flag to -W3 for MSVC and -Wextra to -W4

    Merged-by : Clément Bœsch <u@pkh.me>

    • [DH] configure
  • when ffpmeg drops frames some things aren't played back in real time

    8 février 2024, par Alex028502

    I am trying to run a bunch of ffpmeg processes that act as simulators for cameras, and something funny is happening when I the processor can't keep up with the configured frame rate.

    &#xA;

    I have replaced the rtsp stream with an output file, and managed to reproduce the issue, so will just show that to keep it simple.

    &#xA;

    First here is a makefile that creates my source movie :

    &#xA;

    clock.mp4: Makefile&#xA;    rm -f $@&#xA;    ffmpeg -f lavfi -i color=c=black:s=4096x2160:r=25 -vf \&#xA;"drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:fontsize=72:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2: \&#xA;text=&#x27;%{eif\:trunc(n/25)\:d}&#x27;:start_number=0:rate=25" \&#xA;-t 60 -r 25 $@&#xA;

    &#xA;

    that gives me a one minute long movie that prints the second number to the screen. I have tested it out and the seconds are close enough. I put a lot of pixels to make it easier to jam up my CPU.

    &#xA;

    Here is the script that creates a processes similar to the one I am trying to debug (called experiment.sh)

    &#xA;

    I am actually using H.264, but H.265 is easier to overwhelm the processor with

    &#xA;

    #! /usr/bin/env bash&#xA;&#xA;set -e&#xA;&#xA;echo starting > message$1.txt&#xA;&#xA;rm -f superclock$1.mp4&#xA;ffmpeg -re -stream_loop -1 -i clock.mp4 \&#xA;       -an -vcodec libx265 -preset ultrafast -sc_threshold -1 -x265-params repeat-headers=1 \&#xA;       -vf "drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:fontsize=24:fontcolor=white:x=10:y=10:text=&#x27;%{localtime\:%X}&#x27;, \&#xA;            drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:fontsize=24:fontcolor=white:x=10:y=(h-text_h-10):textfile=message$1.txt:reload=1, \&#xA;            scale=1920x1080,fps=25" \&#xA;       -b:v 3M -minrate 3M -maxrate 3M \&#xA;       -bufsize 6M -g 25 superclock$1.mp4 &amp;&#xA;pid=$!&#xA;&#xA;for x in $(seq 0 10)&#xA;do&#xA;    echo $x > message$1.txt&#xA;    sleep 10&#xA;done&#xA;&#xA;kill -INT $pid || true&#xA;

    &#xA;

    It should

    &#xA;

      &#xA;
    • put the second in the middle of the screen - 'cause it gets it from the source video
    • &#xA;

    • put the approximate sixth of minute in the lower left corner&#xA;(only approximate because of the sleep but close enough)
    • &#xA;

    • put the the wall clock time in the upper left corner
    • &#xA;

    &#xA;

    and it works

    &#xA;

    make clock.mpg&#xA;./experiment.sh 0&#xA;vlc superclock0.mp4&#xA;

    &#xA;

    shows something like this&#xA;working video

    &#xA;

    Now here is the interesting part

    &#xA;

    If I run the script in four different terminals at the same time

    &#xA;

    ./experiment.sh 1&#xA;./experiment.sh 2&#xA;./experiment.sh 3&#xA;./experiment.sh 4&#xA;

    &#xA;

    It can't keep up with the frame rate, and I see this in the output :

    &#xA;

    frame= 1515 fps= 16 q=0.0 size=     768kB time=00:00:59.96 bitrate= 104.9k&#xA;

    &#xA;

    I was hoping the end result would all look ok when I watch it except with fewer frames, but the timestamps of the frames would make it all work as expected

    &#xA;

    However...

    &#xA;

      &#xA;
    • The time in the middle, that is inherited from the source video, the seconds in the middle of the screen, stays in sync with VLC's clock.
    • &#xA;

    • the wall clock in the upper left seems play at 150% speed
    • &#xA;

    • the every ten seconds incrementor in the lower left seems to increment every 7 seconds
    • &#xA;

    • the video is only 1:25 long even though it was recording for at least 1:40 according to sleeps
    • &#xA;

    • the wall clock in the upper right hand corner makes it more than 1'40" and then counter in the lower left makes it to 10.
    • &#xA;

    &#xA;

    30 seconds in

    &#xA;

    Here are four states to compare

    &#xA;

    |                  | Start    | 30" in   | end      |&#xA;|------------------&#x2B;----------&#x2B;----------|----------|&#xA;| Video Time       | 00:00    | 00:30    | 01:24    |&#xA;| Wall Clock Time  | 15:05:50 | 15:06:39 | 15:07:39 |&#xA;| sixth of minute  | 0        | 4        | 10       |&#xA;| seconds counter  | 0        | 30       | 24       |&#xA;

    &#xA;

    end of the movie

    &#xA;

    So you can see the vlc clock keeps pace with the original clock from the source movie.. even when it is only able to produce frames at 2/3 of the rate. However, the it is taking 50% long to get through the whole source movie I guess ?

    &#xA;

    I am having trouble coming up with a theory that can explain exactly how this happens.

    &#xA;

    Does anybody know how I can "correct" this ? (make it so that the movie is played at the same rate that it is recorded)

    &#xA;

    I am thinking of using a lower frame rate and size as the input video.. but it would be nice to have something that will always work as expected, just with a lower frame rate, no matter how busy the processor is.

    &#xA;

  • Synchronize video subtitle with text-to-speech voice

    8 décembre 2015, par Ahmad

    I try to create a video of a text in which the text is narrated by text-to-speech.

    To create the video file, I use the VideoFileWriter of Aforge.Net as the following :

    VideoWriter = new VideoFileWriter();

    VideoWriter.Open(CurVideoFile, (int)(Properties.Settings.Default.VideoWidth),
       (int)(Properties.Settings.Default.VideoHeight), 25, VideoCodec.MPEG4, 800000);

    To read aloud the text I use SpeechSynthesizer class and write the output to a wave stream

    AudioStream = new FileStream(CurAudioFile, FileMode.Create);
    synth.SetOutputToWaveStream(AudioStream);

    I want to highlight the word is spoken in the video, so I synchronize them by the SpeakProgress event :

       void synth_SpeakProgress(object sender, SpeakProgressEventArgs e)
       {

           curAuidoPosition = e.AudioPosition;
           using (Graphics g = Graphics.FromImage(Screen))
           {
                g.DrawString(e.Text,....);
           }                    
           VideoWriter.WriteVideoFrame(Screen, curAuidoPosition);
       }

    And finally, I merge the video and audio using ffmpeg

    using (Process process = new Process())
    {
             process.StartInfo.FileName = exe_path;
             process.StartInfo.Arguments = string.Format(@"-i ""{0}"" -i ""{1}"" -y -acodec copy -vcodec copy ""{2}""",
                                              avi_path, mp3_path, output_file);
    ......

    The problem is that for some voices like Microsoft Hazel, Zira and David, the video is not synchronized with the audio, and the audio is much faster than the shown subtitle. In windows 7, it works for Mircrosoft Sam

    How can I synchronize them so that it works for any text-to-speech voices ?