Recherche avancée

Médias (0)

Mot : - Tags -/serveur

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (11)

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

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

  • Les formats acceptés

    28 janvier 2010, par

    Les commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
    ffmpeg -codecs ffmpeg -formats
    Les format videos acceptés en entrée
    Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
    Les formats vidéos de sortie possibles
    Dans un premier temps on (...)

Sur d’autres sites (3654)

  • Add Windows resource file support for shared libraries

    5 décembre 2013, par James Almer
    Add Windows resource file support for shared libraries
    

    Originally written by James Almer <jamrial@gmail.com>

    With the following contributions by Timothy Gu <timothygu99@gmail.com>

    * Use descriptions of libraries from the pkg-config file generation function
    * Use "FFmpeg Project" as CompanyName (suggested by Alexander Strasser)
    * Use "FFmpeg" for ProductName as MSDN says "name of the product with which the
    file is distributed" [1].
    * Use FFmpeg’s version (N-xxxxx-gxxxxxxx) for ProductVersion per MSDN [1].
    * Only build the .rc files when —enable-small is not enabled.

    [1] http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx

    Signed-off-by : James Almer <jamrial@gmail.com>
    Signed-off-by : Michael Niedermayer <michaelni@gmx.at>

    • [DH] Changelog
    • [DH] Makefile
    • [DH] common.mak
    • [DH] configure
    • [DH] libavcodec/Makefile
    • [DH] libavcodec/avcodecres.rc
    • [DH] libavdevice/Makefile
    • [DH] libavdevice/avdeviceres.rc
    • [DH] libavfilter/Makefile
    • [DH] libavfilter/avfilterres.rc
    • [DH] libavformat/Makefile
    • [DH] libavformat/avformatres.rc
    • [DH] libavresample/Makefile
    • [DH] libavresample/avresampleres.rc
    • [DH] libavutil/Makefile
    • [DH] libavutil/avutilres.rc
    • [DH] libpostproc/Makefile
    • [DH] libpostproc/postprocres.rc
    • [DH] library.mak
    • [DH] libswresample/Makefile
    • [DH] libswresample/swresampleres.rc
    • [DH] libswscale/Makefile
    • [DH] libswscale/swscaleres.rc
  • NV12 textures not working in DirectX 11.1

    28 mars 2017, par André Vitor

    I’m trying to render NV12 textures from frames decoded with ffmpeg 2.8.11 using DirectX 11.1 but when I do render them the texture is broken and the color is always off.

    Result is : http://imgur.com/a/YIVQk

    Code below is how I get the frame decoded by ffmpeg that is in YUV420P format and then I convert(not sure) to NV12 format by interleaving the U and V planes.

    static uint8_t *pixelsPtr_ = nullptr;

    UINT rowPitch = ((width + 1) >> 1) * 2;
    UINT imageSize = (rowPitch * height) + ((rowPitch * height + 1) >> 1);

    if (!pixelsPtr_)
    {
       pixelsPtr_ = new uint8_t[imageSize];
    }

    int j, position = 0;

    uint32_t pitchY = avFrame.linesize[0];
    uint32_t pitchU = avFrame.linesize[1];
    uint32_t pitchV = avFrame.linesize[2];

    uint8_t *avY = avFrame.data[0];
    uint8_t *avU = avFrame.data[1];
    uint8_t *avV = avFrame.data[2];

    ::SecureZeroMemory(pixelsPtr_, imageSize);

    for (j = 0; j &lt; height; j++)
    {              
       ::CopyMemory(pixelsPtr_ + position, avY, (width));
       position += (width);
       avY += pitchY;
    }

    for (j = 0; j &lt; height >> 1; j++)
    {
       ::CopyMemory(pixelsPtr_ + position, avU, (width >> 1));
       position += (width >> 1);
       avU += pitchU;

       ::CopyMemory(pixelsPtr_ + position, avV, (width >> 1));
       position += (width >> 1);
       avV += pitchV;
    }

    This is how I’m creating the Texture2D with the data I just got.

    // Create texture
    D3D11_TEXTURE2D_DESC desc;
    desc.Width = width;
    desc.Height = height;
    desc.MipLevels = 1;
    desc.ArraySize = 1;
    desc.Format = DXGI_FORMAT_NV12;
    desc.SampleDesc.Count = 1;
    desc.SampleDesc.Quality = 0;
    desc.Usage = D3D11_USAGE_DEFAULT;
    desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
    desc.CPUAccessFlags = 0;
    desc.MiscFlags = 0;

    D3D11_SUBRESOURCE_DATA initData;
    initData.pSysMem = pixelsPtr_;
    initData.SysMemPitch = rowPitch;

    ID3D11Texture2D* tex = nullptr;
    hr = d3dDevice->CreateTexture2D(&amp;desc, &amp;initData, &amp;tex);
    if (SUCCEEDED(hr) &amp;&amp; tex != 0)
    {
       D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc;
       memset(&amp;SRVDesc, 0, sizeof(SRVDesc));
       SRVDesc.Format = DXGI_FORMAT_R8_UNORM;
       SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
       SRVDesc.Texture2D.MipLevels = 1;

       hr = d3dDevice->CreateShaderResourceView(tex, &amp;SRVDesc, &amp;textureViewYUV[0]);
       if (FAILED(hr))
       {
           tex->Release();
           return hr;
       }

       SRVDesc.Format = DXGI_FORMAT_R8G8_UNORM;

       hr = d3dDevice->CreateShaderResourceView(tex, &amp;SRVDesc, &amp;textureViewYUV[1]);
       if (FAILED(hr))
       {
           tex->Release();
           return hr;
       }

       tex->Release();
    }

    Then I pass both Shader Resource View to Pixel Shader

    graphics->Context()->PSSetShaderResources(0, 2, textureViewYUV);

    This is the pixel shader :

    struct PixelShaderInput
    {
       float4 pos         : SV_POSITION;
       float4 Color       : COLOR;
       float2 texCoord    : TEXCOORD;
    };

    static const float3x3 YUVtoRGBCoeffMatrix =
    {
       1.164383f,  1.164383f, 1.164383f,
       0.000000f, -0.391762f, 2.017232f,
       1.596027f, -0.812968f, 0.000000f
    };

    Texture2D<float>  luminanceChannel;
    Texture2D<float2> chrominanceChannel;

    SamplerState linearfilter
    {
       Filter = MIN_MAG_MIP_LINEAR;
    };

    float3 ConvertYUVtoRGB(float3 yuv)
    {
       // Derived from https://msdn.microsoft.com/en-us/library/windows/desktop/dd206750(v=vs.85).aspx
       // Section: Converting 8-bit YUV to RGB888

       // These values are calculated from (16 / 255) and (128 / 255)
       yuv -= float3(0.062745f, 0.501960f, 0.501960f);
       yuv = mul(yuv, YUVtoRGBCoeffMatrix);

       return saturate(yuv);
    }

    float4 main(PixelShaderInput input) : SV_TARGET
    {
       float y = luminanceChannel.Sample(linearfilter, input.texCoord);
       float2 uv = chrominanceChannel.Sample(linearfilter, input.texCoord);

       float3 YUV = float3(y, uv.x, uv.y);
       float4 YUV4 = float4(YUV.x, YUV.y, YUV.z, 1);

       float3 RGB = ConvertYUVtoRGB(YUV);
       float4 RGB4 = float4(RGB.x, RGB.y, RGB.z, 1);

       return RGB4;
    }
    </float2></float>

    Can someone help me ? What I’m doing wrong ?

    EDIT #1

    int skipLineArea = 0;
    int uvCount = (height >> 1) * (width >> 1);

    for (j = 0, k = 0; j &lt; uvCount; j++, k++)
    {
       if (skipLineArea == (width >> 1))
       {
           k += pitchU - (width >> 1);
           skipLineArea = 0;
       }

       pixelsPtr_[position++] = avU[k];
       pixelsPtr_[position++] = avV[k];
       skipLineArea++;
    }

    EDIT #2

    Updating the texture instead of creating new ones

    D3D11_MAPPED_SUBRESOURCE mappedResource;
    d3dContext->Map(tex, 0, D3D11_MAP_WRITE_DISCARD, 0, &amp;mappedResource);

    uint8_t* mappedData = reinterpret_cast(mappedResource.pData);

    for (UINT i = 0; i &lt; height * 1.5; ++i)
    {
       memcpy(mappedData, frameData, rowPitch);
       mappedData += mappedResource.RowPitch;
       frameData += rowPitch;
    }

    d3dContext->Unmap(tex, 0);
  • create Accord.Video.FFMPEG object intial error

    14 mars 2018, par lokcyi

    I create an project with C# Visual studio 2013 and reference Accord.Video.FFMPEG.dll.
    The Configure of projects Target Platforms is set to x86.
    It is ok while compileing.
    But,It would throw run time error when application running.
    The exception is below. showing =>This application cannot be run in 64-bits
    I have no idea what wrong with the error ?


    System.TypeInitializationException   IsTransient=false
     Message='<module>' 的型別初始設定式發生例外狀況。
     Source=VideoMarkerAccord
     TypeName=<module>
     StackTrace:
          於 VideoMarker.Form1.test()
          於 VideoMarker.Form1.ConvertVedio(Int32 iFps, Int32 bitrate, Int32 width, Int32 height, Int32 iSpeed, String sOutputPath, String xml, String sVCode) 於 d:\Projects\AForge\VideoMarkerAccord\VideoMarker\Form1.cs: 行 201
          於 VideoMarker.Form1.btnConvertVedio_Click(Object sender, EventArgs e) 於 d:\Projects\AForge\VideoMarkerAccord\VideoMarker\Form1.cs: 行 181
          於 System.Windows.Forms.Control.OnClick(EventArgs e)
          於 System.Windows.Forms.Button.OnClick(EventArgs e)
          於 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
          於 System.Windows.Forms.Control.WmMouseUp(Message&amp; m, MouseButtons button, Int32 clicks)
          於 System.Windows.Forms.Control.WndProc(Message&amp; m)
          於 System.Windows.Forms.ButtonBase.WndProc(Message&amp; m)
          於 System.Windows.Forms.Button.WndProc(Message&amp; m)
          於 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp; m)
          於 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp; m)
          於 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
          於 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&amp; msg)
          於 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
          於 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
          於 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
          於 System.Windows.Forms.Application.Run(Form mainForm)
          於 VideoMarker.Program.Main() 於 d:\Projects\AForge\VideoMarkerAccord\VideoMarker\Program.cs: 行 18
          於 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
          於 System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
          於 System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
          於 System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
          於 System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
          於 System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
          於 System.Activator.CreateInstance(ActivationContext activationContext)
          於 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
          於 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
          於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
          於 System.Threading.ThreadHelper.ThreadStart()
     InnerException: <crtimplementationdetails>.ModuleLoadException
          _HResult=-2146233088
          _message=The C++ module failed to load during process initialization.

          IsTransient=false
          Message=The C++ module failed to load during process initialization.

          Source=msvcm90
          StackTrace:
               於 <crtimplementationdetails>.ThrowModuleLoadException(String errorMessage, Exception innerException)
               於 <crtimplementationdetails>.ThrowModuleLoadException(String , Exception )
               於 <crtimplementationdetails>.LanguageSupport.Initialize(LanguageSupport* )
               於 .cctor()
          InnerException: System.InvalidOperationException
               _HResult=-2146233079
               _message=This application cannot be run in 64-bits.
               IsTransient=false
               Message=This application cannot be run in 64-bits.
               Source=Accord.Video.FFMPEG
               StackTrace:
                    於 _init.{ctor}(_init* )
                    於 ?A0xbe509209.??__E?A0xbe509209@_initializer@@YMXXZ()
                    於 _initterm_m((fnptr)* pfbegin, (fnptr)* pfend)
                    於 <crtimplementationdetails>.LanguageSupport.InitializePerProcess(LanguageSupport* )
                    於 <crtimplementationdetails>.LanguageSupport._Initialize(LanguageSupport* )
                    於 <crtimplementationdetails>.LanguageSupport.Initialize(LanguageSupport* )
               InnerException:
    </crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></module></module>