Recherche avancée

Médias (2)

Mot : - Tags -/plugins

Autres articles (67)

  • Changer son thème graphique

    22 février 2011, par

    Le thème graphique ne touche pas à la disposition à proprement dite des éléments dans la page. Il ne fait que modifier l’apparence des éléments.
    Le placement peut être modifié effectivement, mais cette modification n’est que visuelle et non pas au niveau de la représentation sémantique de la page.
    Modifier le thème graphique utilisé
    Pour modifier le thème graphique utilisé, il est nécessaire que le plugin zen-garden soit activé sur le site.
    Il suffit ensuite de se rendre dans l’espace de configuration du (...)

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

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

Sur d’autres sites (10859)

  • Why i'm getting strange video file when using ffmpeg and pipes to create video file in real time ?

    30 juin 2015, par Brubaker Haim

    The goal here is to create a compressed mp4 video file in real time.
    I’m saving screenshots as bitmaps type on my hard disk.
    And i want to create mp4 file and compress the mp4 video file in real time.

    The problem is the end the video file i get looks very strange.
    This is the result : Strange Video File

    The class that i’m using the ffmpeg with arguments.

    using System;
    using System.Windows.Forms;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Drawing;
    using System.IO.Pipes;
    using System.Runtime.InteropServices;
    using System.Diagnostics;
    using System.IO;
    using DannyGeneral;

    namespace Youtube_Manager
    {
       class Ffmpeg
       {
           NamedPipeServerStream p;
           String pipename = "mytestpipe";
           System.Diagnostics.Process process;
           string ffmpegFileName = "ffmpeg.exe";
           string workingDirectory;

           public Ffmpeg()
           {
               workingDirectory = Path.GetDirectoryName(Application.ExecutablePath);
               Logger.Write("workingDirectory: " + workingDirectory);
               if (!Directory.Exists(workingDirectory))
               {
                   Directory.CreateDirectory(workingDirectory);
               }
               ffmpegFileName = Path.Combine(workingDirectory, ffmpegFileName);
               Logger.Write("FfmpegFilename: " + ffmpegFileName);
           }

           public void Start(string pathFileName, int BitmapRate)
           {
               try
               {

                   string outPath = pathFileName;
                   p = new NamedPipeServerStream(pipename, PipeDirection.Out, 1, PipeTransmissionMode.Byte);

                   ProcessStartInfo psi = new ProcessStartInfo();
                   psi.WindowStyle = ProcessWindowStyle.Hidden;
                   psi.UseShellExecute = false;
                   psi.CreateNoWindow = false;
                   psi.FileName = ffmpegFileName;
                   psi.WorkingDirectory = workingDirectory;
                   psi.Arguments = @"-f rawvideo -pix_fmt yuv420p -video_size 1920x1080 -i \\.\pipe\mytestpipe -map 0 -c:v mpeg4 -r " + BitmapRate + " " + outPath;
                   //psi.Arguments = @"-framerate 1/5 -i -c:v libx264 -r 30 -pix_fmt yuv420p \\.\pipe\mytestpipe -map 0 -c:v mpeg4 -r" + BitmapRate + " " + outPath;
                   process = Process.Start(psi);
                   process.EnableRaisingEvents = false;
                   psi.RedirectStandardError = true;
                   p.WaitForConnection();
               }
               catch (Exception err)
               {
                   Logger.Write("Exception Error: " + err.ToString());
               }
           }

           public void PushFrame(Bitmap bmp)
           {
               try
               {
                   int length;
                   // Lock the bitmap's bits.
                   //bmp = new Bitmap(1920, 1080);
                   Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
                   //Rectangle rect = new Rectangle(0, 0, 1280, 720);
                   System.Drawing.Imaging.BitmapData bmpData =
                       bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadOnly,
                       bmp.PixelFormat);

                   int absStride = Math.Abs(bmpData.Stride);
                   // Get the address of the first line.
                   IntPtr ptr = bmpData.Scan0;

                   // Declare an array to hold the bytes of the bitmap.
                   //length = 3 * bmp.Width * bmp.Height;
                   length = absStride * bmpData.Height;
                   byte[] rgbValues = new byte[length];

                   //Marshal.Copy(ptr, rgbValues, 0, length);
                   int j = bmp.Height - 1;
                   for (int i = 0; i < bmp.Height; i++)
                   {
                       IntPtr pointer = new IntPtr(bmpData.Scan0.ToInt32() + (bmpData.Stride * j));
                       System.Runtime.InteropServices.Marshal.Copy(pointer, rgbValues, absStride * (bmp.Height - i - 1), absStride);
                       j--;
                   }
                   p.Write(rgbValues, 0, length);
                   bmp.UnlockBits(bmpData);
               }
               catch(Exception err)
               {
                   Logger.Write("Error: " + err.ToString());
               }

           }

           public void Close()
           {
               p.Close();
           }
       }
    }

    Then i’m using the method PushFrame here in this class :

    public Bitmap GetScreenShot(string folder, string name)
       {
           _screenShot = new Bitmap(GetScreen());
           System.GC.Collect();
           System.GC.WaitForPendingFinalizers();
           string ingName = folder + name +  images.counter.ToString("D6") + ".bmp";
           _screenShot.Save(ingName,System.Drawing.Imaging.ImageFormat.Bmp);
           fmpeg.PushFrame(_screenShot);
           _screenShot.Dispose();

           return _screenShot;
       }

    The Bitmaps on the hard disk are fine i can edit/open see them.
    When using command prompt and manually type ffmpeg command it does compress and create a mp4 video file.

    But when using the Ffmpeg class i did with the PushFrame method it’s creating this strange video file.

    This is a link for my OneDrive with 10 screenshots images files for testing :

    screenshots rar

    Sample screenshot from the video file when playing the video file :
    Looks very choppy. The Bitmaps on the hard disk each one is 1920x1080 and Bit depth 32

    But it dosen’t look like that in the video file :

    choppy image

    This is the arguments i’m using :

    psi.Arguments = @"-f rawvideo -vcodec rawvideo -pix_fmt rgb24 -video_size 1920x1080 -i \\.\pipe\mytestpipe -map 0 -c:v mpeg4 -r " + BitmapRate + " " + outPath;

    The video size is very small 1.24 MB

  • Stream to Azure Media Service from ffmpeg, stream can not be played

    24 juillet 2015, par Simon

    i try to send a stream from my RaspberryPI with debian wheezy to the AzureMediaService.
    I followed the instructions of this nice post.
    http://gtrifonov.com/2015/07/02/streaming-live-video-from-raspberrypi-to-azure-media-services/

    After a lot of trouble with the ffmpeg and libx264 builds i think i have it working now, to stream to the rtmp urls.

    INGESTURI="rtmp://office-klokklokmediastream.channel.mediaservices.windows.net:1935/live/3e541bc149754ebd975b95ec3583c949/mystream1"
    ffmpeg -framerate 30 -r 30 -s 640x480 -i /dev/video0 -vcodec libx264 -preset ultrafast -acodec libfaac -ab 48k -b:v 500k -maxrate 500k -bufsize 500k -r 30 -g 60 -keyint_min 60 -sc_threshold 0 -f flv $INGESTURI

    But when i try to watch the link in azure portal publish link or with the azure amsmediaplayer it tells me (i have reseted the channel already) :

    "The video could not be loaded, either because the server or network failed or because the format is not supported."

    The public stream url is :

    http://klokklokmediastream.streaming.mediaservices.windows.net/30c3920e-420a-4d33-8938-e79d0db240ff/c9fd3479-0d4b-4643-a3f9-5fd5831985d0.ism/Manifest

    In the linux shell i see the following output while streaming, looks for me as send stream is working :

    "root@raspberrypi:/home/pi/klokklok# ./azure_ffmpeg
    ffmpeg version N-73894-g830d3a0 Copyright (c) 2000-2015 the FFmpeg developers
     built with gcc 4.6 (Debian 4.6.3-14+rpi1)
     configuration: --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
     libavutil      54. 28.100 / 54. 28.100
     libavcodec     56. 50.101 / 56. 50.101
     libavformat    56. 40.101 / 56. 40.101
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 25.100 /  5. 25.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.101 /  1.  2.101
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, video4linux2,v4l2, from '/dev/video0':
     Duration: N/A, start: -140462028.282167, bitrate: 110592 kb/s
       Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 640x480, 110592 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
    [libx264 @ 0x3321920] using cpu capabilities: none!
    [libx264 @ 0x3321920] profile Constrained Baseline, level 3.0
    [libx264 @ 0x3321920] 264 - core 146 r2538 121396c - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=60 keyint_min=31 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=cbr mbtree=0 bitrate=500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=500 vbv_bufsize=500 nal_hrd=none filler=0 ip_ratio=1.40 aq=0
    Output #0, flv, to 'rtmp://office-klokklokmediastream.channel.mediaservices.windows.net:1935/live/3e501bc149754ebd975b95ec3583c949/mystream1':
     Metadata:
       encoder         : Lavf56.40.101
       Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 640x480, q=-1--1, 500 kb/s, 30 fps, 1k tbn, 30 tbc
       Metadata:
         encoder         : Lavc56.50.101 libx264
    Stream mapping:
     Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    DTS 140462610481701, next:33333 st:0 invalid dropping
    PTS 140462610481701, next:33333 invalid dropping st:0
    DTS 140462610515017, next:66666 st:0 invalid dropping
    PTS 140462610515017, next:66666 invalid dropping st:0
    DTS 140462610548333, next:99999 st:0 invalid dropping
    PTS 140462610548333, next:99999 invalid dropping st:0
    frame=    4 fps=0.0 q=31.0 size=       7kB time=00:00:00.10 bitrate= 554.6kbits/DTS 140462610581650, next:133332 st:0 invalid dropping
    PTS 140462610581650, next:133332 invalid dropping st:0
    DTS 140462610614965, next:166665 st:0 invalid dropping
    PTS 140462610614965, next:166665 invalid dropping st:0
    frame=    6 fps=5.1 q=29.0 size=       9kB time=00:00:00.16 bitrate= 462.5kbits/DTS 140462610648281, next:199998 st:0 invalid dropping
    PTS 140462610648281, next:199998 invalid dropping st:0
    DTS 140462610681598, next:233331 st:0 invalid dropping
    PTS 140462610681598, next:233331 invalid dropping st:0
    DTS 140462610714914, next:266664 st:0 invalid dropping
    PTS 140462610714914, next:266664 invalid dropping st:0
    frame=   14 fps=4.6 q=23.0 size=      21kB time=00:00:00.43 bitrate= 396.0kbits/DTS 140462610914810, next:466662 st:0 invalid dropping
    PTS 140462610914810, next:466662 invalid dropping st:0
    [flv @ 0x3320ae0] Failed to update header with correct duration.
    [flv @ 0x3320ae0] Failed to update header with correct filesize.
    frame=   15 fps=3.9 q=22.0 Lsize=      25kB time=00:00:00.50 bitrate= 407.8kbits/s
    video:24kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.373589%
    [libx264 @ 0x3321920] frame I:1     Avg QP:31.00  size:  2777
    [libx264 @ 0x3321920] frame P:14    Avg QP:26.68  size:  1531
    [libx264 @ 0x3321920] mb I  I16..4: 100.0%  0.0%  0.0%
    [libx264 @ 0x3321920] mb P  I16..4: 12.4%  0.0%  0.0%  P16..4: 29.7%  0.0%  0.0%  0.0%  0.0%    skip:57.9%
    [libx264 @ 0x3321920] coded y,uvDC,uvAC intra: 6.3% 13.9% 0.5% inter: 5.7% 21.4% 0.1%
    [libx264 @ 0x3321920] i16 v,h,dc,p: 52% 17% 16% 14%
    [libx264 @ 0x3321920] i8c dc,h,v,p: 63% 14% 20%  3%
    [libx264 @ 0x3321920] kb/s:387.47
    Exiting normally, received signal 2.
    "

    I cant find a solution for that so thanks a lot for any advice.

  • FFprobe reading incorrect resolution value despite players rendering it correctly

    24 juillet 2015, par Boehmi

    I’m creating a video from a stream with the help of FFMPEG and I also use FFPROBE to gather information for use on a status page like resolution, codecs et cetera.

    When FFProbe parses my video for information, I get a resolution value of 544x576 (almost a square !), but an aspect ratio of 16:9.

    These values are consistent on both the input stream and my saved video.

    When I watch the video in the standard HTML5 Player, VLC or FFPLAY however, I get a video with the proportions of 16:9 and a resolution (measured using an image editing program) of 1024x576 that does look native and not stretched in any way.

    Even if I re-encode the video using slightly different codecs, this incorrect resolution value persists, even though every player I use displays it correctly.

    This is slightly inconvenient because I am relying on getting the correct resolution value from the video for further processing.

    I’m also using a recent FFMPEG+FFPROBE version that was compiled on the 15th of July.

    Is this a bug within FFMPEG or is there anything I’m doing wrong ?

    Used command lines :

    FFMPEG :

    ffmpeg -i source -loglevel debug -vcodec copy -acodec copy -bsf:a aac_adtstoasc -movflags +faststart -t 360 -y video.mp4

    FFPROBE (I parse the output of this directly and save the values) :

    ffprobe -i source -show_format -show_streams

    FFProbe output :

    width=544
    height=576
    coded_width=544
    coded_height=576
    has_b_frames=2
    sample_aspect_ratio=32:17
    display_aspect_ratio=16:9

    I can see that the sample aspect ratio is different from the display aspect ratio, but how come the video looks proper in 16:9 when it’s supposedly encoded at a near square resolution ?