Recherche avancée

Médias (91)

Autres articles (36)

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

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (6218)

  • Scaling nginx-rtmp livestreaming with ffmpeg transcoding

    31 mars 2020, par hoodsy

    I currently have a functional livestreaming setup using the prolific nginx-rtmp library, and I’m using ffmpeg to provide various resolutions of my stream.

    The only problem is, ffmpeg with only 2 outputs eats up 50% of my CPU. I’d like to be able to support up to 20 streamers at once – with the current demand, that would mean I need 10x the CPU power that I currently have !

    How can I scale my transcoding setup with nginx-rtmp and ffmpeg ?

    rtmp {
    server {
       listen 1935;

       application src {
           live on;
           exec_push ffmpeg -i rtmp://localhost/src/$name
               -c:v copy -preset:v ultrafast -b:v 512K -c:a copy -tune zerolatency -f flv rtmp://localhost/hls/$name_hi
               -c:v libx264 -preset:v ultrafast -s 852x480 -b:v 128K -c:a copy -tune zerolatency -f flv rtmp://localhost/hls/$name_low;

               # -c:v libx264 -s 852x480 -b:v 128K -c:a copy -tune zerolatency -f flv rtmp://localhost/hls/$name_low;
               # -c:v libx264 -s 1280x720 -b:v 256k -c:a copy -tune zerolatency -f flv rtmp://localhost/hls/$name_mid;
       }

       application hls {
           live on;
           hls on;
           hls_path /tmp/hls;

           # hls_fragment 1s;
           # hls_playlist_length 4s;
           hls_fragment 4s;
           hls_playlist_length 12s;
           hls_nested on;
           hls_variant _low BANDWIDTH=160000;
           # hls_variant _mid BANDWIDTH=320000;
           hls_variant _hi  BANDWIDTH=640000;
       }
    }

    }

  • Repair mpeg files using ffmpeg

    17 août 2018, par rsdrsd

    I have a bunch of MPEG files which are somehow invalid or incorrect. I can play the files in different media players but when I upload the files and they should automatically be converted. It takes a very long time to create screenshots and it creates about 10000 screenshots instead of the 50 to be expected. The command is part of an automatic conversion app. With mp4 and other files it works great but whit MPEG it doesn’t work as expected. The creation of screenshots eats up all memory and processor power.

    For creating screenshots I have tried the following :

    ffmpeg -y -i /input/file.mpeg -f image2 -aspect 16:9 -bt 20M -vsync passthrough -vf select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)' /output/file-%05d.jpg

    this just creates 2 screenshots while I expect 50 or so. The following command :

    ffmpeg -y -i /input/file.mpeg -f image2 -vf fps=fps=1/10 -aspect 16:9 -vsync passthrough -bt 20M /output/file-%05d.jpg

    gave me errors about buffers :

       ffmpeg version N-39361-g1524b0f Copyright (c) 2000-2014 the FFmpeg developers
         built on Feb 26 2014 23:46:40 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
         configuration: --prefix=/home/example/ffmpeg_build --extra-cflags=-I/home/example/ffmpeg_build/include --extra-ldflags=-L/home/example/ffmpeg_build/lib --bindir=/home/example/bin --extra-libs=-ldl --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libfreetype --enable-libspeex --enable-libtheora
         libavutil      52. 66.100 / 52. 66.100
         libavcodec     55. 52.102 / 55. 52.102
         libavformat    55. 33.100 / 55. 33.100
         libavdevice    55. 10.100 / 55. 10.100
         libavfilter     4.  2.100 /  4.  2.100
         libswscale      2.  5.101 /  2.  5.101
         libswresample   0. 18.100 /  0. 18.100
         libpostproc    52.  3.100 / 52.  3.100
       [mp3 @ 0x200d7c0] Header missing
       [mpegts @ 0x2008a60] DTS discontinuity in stream 0: packet 6 with DTS 34185, packet 7 with DTS 8589926735
       [mpegts @ 0x2008a60] Invalid timestamps stream=0, pts=7157, dts=8589932741, size=150851
       Input #0, mpegts, from '/home/example/app/uploads/21.mpeg':
         Duration: 00:03:14.75, start: 0.213000, bitrate: 26112 kb/s
         Program 1
    Stream #0:0[0x3e9]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 1440x1080 [SAR 4:3 DAR 16:9], max. 25000 kb/s, 29.97 fps, 60 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x3ea]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 384 kb/s
       [swscaler @ 0x1ff9860] deprecated pixel format used, make sure you did set range correctly
       Output #0, image2, to '/home/example/app/uploads/21-%05d.jpg':
         Metadata:
    encoder         : Lavf55.33.100
    Stream #0:0: Video: mjpeg, yuvj420p, 1440x1080 [SAR 4:3 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 0.10 tbc
       Stream mapping:
         Stream #0:0 -> #0:0 (mpeg2video -> mjpeg)
       Press [q] to stop, [?] for help
       [mpegts @ 0x2008a60] Invalid timestamps stream=0, pts=7157, dts=8589932741, size=150851
       [output stream 0:0 @ 0x1ff2ba0] 100 buffers queued in output stream 0:0, something may be wrong.
       [output stream 0:0 @ 0x1ff2ba0] 1000 buffers queued in output stream 0:0, something may be wrong.

    and it creates about 10000 screenshots while I expect 50.

    Now I have read somewhere on how to repair some broken files. For this I have the following command :

    ffmpeg -y -i input.mpeg -codec:v copy -codec:a copy output.mpeg

    This, however, creates a file somewhat smaller, but if I run the same command on the output again, I would expect that it creates the same file, but the following command

    ffmpeg -y -i output.mpeg -codec:v copy -codec:a copy output2.mpeg

    returns a file which is much smaller and runs for only a few seconds while the original was about 3 minutes.

    If I run the "repair" commands for a not broken MPEG then it results in a much smaller file the first time I run the command. With ffprobe I checked what changed but the only thing that changes is MPEG-TS to MPEG-PS.

    If I run the command over an mp4 file it results in exactly the same file as expected. Does someone have a clue of what is going wrong. It is boggling me now for about two days and I really have no clue. Or does someone have a good suggestion on how to extract screenshots every 10 seconds without creating too much screenshots and eating up all memory and processor power.

  • Invalid data found when processing input on ffmpeg m4s to mp4 transfer

    1er mars 2020, par keith scott

    The result of the power shell window

    I saw a post on here about converting m4s to mp4 and I have followed the steps of concatenating all the files into another m4s file that I called all.m4s and when I use the command ffmpeg -i allm4s.m4s -c copy video.mp4. I made the combined m4s file by coding an exe to add all the m4s files that have the word video in them to the m4s file. Here is the source code written in c# if you compile the code then that is the code I have used to make the m4s

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;

    namespace files
    {
       class Program
       {
           static void Main(string[] args)
           {
               string dir = Directory.GetCurrentDirectory();
               string[] info = Directory.GetFiles(dir);
               Console.WriteLine(dir + "\\allm4s.m4s");
               Console.ReadKey();
               foreach (string name in info)
               {
                   if (Path.GetFileName(name).Contains(".m4s") && Path.GetFileName(name).Contains("video"))
                   {
                       using (Stream srcStream = File.OpenRead(name))
                       {
                           using (Stream destStream = File.OpenWrite(dir+"\\allm4s.m4s"))
                           {
                               srcStream.CopyTo(destStream);
                               Console.WriteLine(destStream+name);
                           }
                       }
                   }
               }
               Console.ReadKey();
           }
       }
    }

    I think if there is to be an issue it is to do with this allm4s.m4s file as the file size is about 1.5mb even though each segment m4s is about 750kb each and there are quite a lot.If anyone has a way of adding concatenating lots of files together through a program/application that would be useful.