Recherche avancée

Médias (0)

Mot : - Tags -/publication

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

Autres articles (109)

  • L’agrémenter visuellement

    10 avril 2011

    MediaSPIP est basé sur un système de thèmes et de squelettes. Les squelettes définissent le placement des informations dans la page, définissant un usage spécifique de la plateforme, et les thèmes l’habillage graphique général.
    Chacun peut proposer un nouveau thème graphique ou un squelette et le mettre à disposition de la communauté.

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

Sur d’autres sites (11787)

  • 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>
  • 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);
  • 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