
Recherche avancée
Médias (91)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
-
avec chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
sans chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
config chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
Autres articles (29)
-
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
Gestion de la ferme
2 mars 2010, parLa ferme est gérée dans son ensemble par des "super admins".
Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
Dans un premier temps il utilise le plugin "Gestion de mutualisation" -
MediaSPIP Core : La Configuration
9 novembre 2010, parMediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...)
Sur d’autres sites (4594)
-
Convert MP4 file to play on multiple browsers [on hold]
3 mars 2015, par AshleyWIs there a way I can convert MP4 files to formats like webm and mov without the use of ffmpeg so I can get videos to play on multiple browsers ?
I am avoiding ffmpeg as from what I’ve been told is it uses a lot of resources so its not ideal for normal shared hosting and more ideal for private servers.
-
Does the installation of ffmpeg for Laravel use exe files ?
28 août 2022, par morteza heydariI wanted to use the ffmpeg package of Laravel, but because it is a shared host, I cannot use the executable file
Is the Laravel ffmpeg package related to the A exe file ?


-
How to render a frame to a screen window via D3D11
19 juin 2024, par mercuric taylorI have successfully decoded a video using FFmpeg with the AV_HWDEVICE_TYPE_D3D11VA decoder, and I currently have a AVFrame on the GPU.


To render this frame, my approach includes the following steps :


1.I created a D3D class. Besides the basic initialization (device, context, viewport), the core part is texture. To directly copy the frame on the GPU to the shared texture, I have the following two functions.


void D3D::InitScence(ID3D11Device* device, UINT width, UINT height) {
 D3D11_TEXTURE2D_DESC tdesc = {};
 tdesc.Width = width;
 tdesc.Height = height;
 tdesc.MipLevels = 1;
 tdesc.ArraySize = 1;
 tdesc.Format = DXGI_FORMAT_NV12;
 tdesc.SampleDesc.Count = 1;
 tdesc.Usage = D3D11_USAGE_DEFAULT;
 tdesc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
 tdesc.CPUAccessFlags = 0;
 tdesc.MiscFlags = D3D11_RESOURCE_MISC_SHARED;

 HRESULT hr = device->CreateTexture2D(&tdesc, nullptr, sharedTexture.GetAddressOf());
 if (FAILED(hr)) {
 throw std::runtime_error("Failed to create shared texture.");
 }

 ComPtr<idxgiresource> dxgiResource;
 sharedTexture.As(&dxgiResource);
 hr = dxgiResource->GetSharedHandle(&sharedHandle);
 if (FAILED(hr)) {
 throw std::runtime_error("Failed to get shared handle.");
 }

 D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc = {};
 srvDesc.Format = DXGI_FORMAT_R8_UNORM;
 srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
 srvDesc.Texture2D.MostDetailedMip = 0;
 srvDesc.Texture2D.MipLevels = 1;

 hr = device->CreateShaderResourceView(sharedTexture.Get(), &srvDesc, srvY.GetAddressOf());
 if (FAILED(hr)) {
 throw std::runtime_error("Failed to create SRV for Y plane.");
 }

 srvDesc.Format = DXGI_FORMAT_R8G8_UNORM;
 hr = device->CreateShaderResourceView(sharedTexture.Get(), &srvDesc, srvUV.GetAddressOf());
 if (FAILED(hr)) {
 throw std::runtime_error("Failed to create SRV for UV plane.");
 }
}

void D3D::RenderFrame() {
 
 float clearColor[4] = { 0.0f, 0.0f, 0.0f, 1.0f };
 deviceContext->ClearRenderTargetView(backbuffer.Get(), clearColor);

 
 ID3D11ShaderResourceView* srvs[] = { srvY.Get(), srvUV.Get() };
 deviceContext->PSSetShaderResources(0, 2, srvs);

 
 deviceContext->IASetInputLayout(inputLayout.Get());
 deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
 UINT stride = sizeof(Vertex);
 UINT offset = 0;
 deviceContext->IASetVertexBuffers(0, 1, vertexBuffer.GetAddressOf(), &stride, &offset);
 deviceContext->IASetIndexBuffer(indexBuffer.Get(), DXGI_FORMAT_R32_UINT, 0);

 deviceContext->VSSetShader(vertexShader.Get(), nullptr, 0);
 deviceContext->PSSetShader(pixelShader.Get(), nullptr, 0);

 deviceContext->DrawIndexed(6, 0, 0);

 swapchain->Present(1, 0);
}

</idxgiresource>


The function to copy the AVFrame to the shared texture is this one, and I call it after successfully decoding a frame :


void Decode::UpdateVideoTexture(AVFrame* frame, D3D& dxInstance)
{
 ID3D11Texture2D* t_frame = (ID3D11Texture2D*)frame->data[0];

 ComPtr<id3d11device> device;
 t_frame->GetDevice(device.GetAddressOf());

 ComPtr<id3d11devicecontext> deviceCtx;
 device->GetImmediateContext(&deviceCtx);

 ComPtr<id3d11texture2d> videoTexture;
 device->OpenSharedResource(dxInstance.sharedHandle, __uuidof(ID3D11Texture2D), (void**)&videoTexture);

 deviceCtx->CopySubresourceRegion(videoTexture.Get(), 0, 0, 0, 0, t_frame, 0, nullptr);
 deviceCtx->Flush();
}
</id3d11texture2d></id3d11devicecontext></id3d11device>


But obviously I didn't get the results I expected, and I couldn't find where the problem was. From the debug results, it seems that CopySubresourceRegion did not succeed.
Can anyone tell me where is the problem ? Or are there is any open source projects very similar to mine ?