
Recherche avancée
Médias (1)
-
Somos millones 1
21 juillet 2014, par
Mis à jour : Juin 2015
Langue : français
Type : Video
Autres articles (32)
-
Installation en mode ferme
4 février 2011, parLe mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
C’est la méthode que nous utilisons sur cette même plateforme.
L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...) -
Configuration spécifique d’Apache
4 février 2011, parModules spécifiques
Pour la configuration d’Apache, il est conseillé d’activer certains modules non spécifiques à MediaSPIP, mais permettant d’améliorer les performances : mod_deflate et mod_headers pour compresser automatiquement via Apache les pages. Cf ce tutoriel ; mode_expires pour gérer correctement l’expiration des hits. Cf ce tutoriel ;
Il est également conseillé d’ajouter la prise en charge par apache du mime-type pour les fichiers WebM comme indiqué dans ce tutoriel.
Création d’un (...) -
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)
Sur d’autres sites (7826)
-
C# server problem with FFmpeg Visual Studio 2022
16 mai 2024, par seanofdeadHello everyone I've spent countless hours on my server I'm trying to create that will share video from one stream to another client computer. That is the goal anyway. I'm using Visual Studio 2022 most recent update. Currently this is my code


using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;
using FFmpeg.AutoGen;
using NLog;

public class VideoStreamServer
{
 private const int Port = 5000;
 private TcpListener server;
 private FFmpegVideoEncoder encoder;
 private static readonly Logger logger = LogManager.GetCurrentClassLogger();

 public VideoStreamServer()
 {
 // Initialize FFmpeg network components
 Console.WriteLine("Initializing FFmpeg network components...");
 int result = ffmpeg.avformat_network_init();
 if (result != 0)
 {
 throw new ApplicationException($"Failed to initialize FFmpeg network components: {result}");
 }

 // Initialize encoder
 encoder = new FFmpegVideoEncoder(1920, 1080, AVCodecID.AV_CODEC_ID_H264); // Screen size & codec
 }

 public static void Main()
 {
 // Initialize NLog
 var logger = LogManager.GetCurrentClassLogger();
 logger.Info("Application started");

 var server = new VideoStreamServer();
 server.Start().Wait();
 }

 public async Task Start()
 {
 server = new TcpListener(IPAddress.Any, Port);
 server.Start();
 logger.Info($"Server started on port {Port}...");

 try
 {
 while (true)
 {
 TcpClient client = await server.AcceptTcpClientAsync();
 logger.Info("Client connected...");
 _ = HandleClientAsync(client);
 }
 }
 catch (Exception ex)
 {
 logger.Error(ex, "An error occurred");
 }
 }

 private async Task HandleClientAsync(TcpClient client)
 {
 using (client)
 using (NetworkStream netStream = client.GetStream())
 {
 try
 {
 await encoder.StreamEncodedVideoAsync(netStream);
 }
 catch (IOException ex)
 {
 logger.Error(ex, $"Network error: {ex.Message}");
 // Additional logging and recovery actions
 }
 catch (Exception ex)
 {
 logger.Error(ex, $"Unexpected error: {ex.Message}");
 // Log and handle other exceptions
 }
 finally
 {
 // Ensure all resources are cleaned up properly
 client.Close();
 logger.Info("Client connection closed properly.");
 }
 }
 }
}

public class FFmpegVideoEncoder
{
 private readonly int width;
 private readonly int height;
 private readonly AVCodecID codecId;
 private static readonly Logger logger = LogManager.GetCurrentClassLogger();

 public FFmpegVideoEncoder(int width, int height, AVCodecID codecId)
 {
 this.width = width;
 this.height = height;
 this.codecId = codecId;
 InitializeEncoder();
 }

 private void InitializeEncoder()
 {
 // Initialize FFmpeg encoder here
 logger.Debug("FFmpeg encoder initialized");
 }

 public async Task StreamEncodedVideoAsync(NetworkStream netStream)
 {
 // Initialize reusable buffers for efficiency
 byte[] buffer = new byte[4096];

 // Capture and encode video frames
 while (true)
 {
 try
 {
 // Simulate capture and encoding
 byte[] videoData = new byte[1024]; // This would come from the encoder

 // Simulate streaming
 for (int i = 0; i < videoData.Length; i += buffer.Length)
 {
 int chunkSize = Math.Min(buffer.Length, videoData.Length - i);
 Buffer.BlockCopy(videoData, i, buffer, 0, chunkSize);
 await netStream.WriteAsync(buffer, 0, chunkSize);
 }
 }
 catch (Exception ex)
 {
 logger.Error(ex, "Error streaming video data");
 throw; // Rethrow to handle in the calling function
 }

 await Task.Delay(1000 / 30); // For 30 FPS
 }
 }
}



When I build no issues but when i run it in debug mode I get this error


System.DllNotFoundException
 HResult=0x80131524
 Message=Unable to load DLL 'avformat.59 under C:\Users\phlfo\Downloads\cfolder\server\ConsoleApp\bin\Debug\': The specified module could not be found.
 Source=FFmpeg.AutoGen
 StackTrace:
 at FFmpeg.AutoGen.ffmpeg.LoadLibrary(String libraryName, Boolean throwException)
 at FFmpeg.AutoGen.ffmpeg.<>c.<.cctor>b__7_0(String libraryName)
 at FFmpeg.AutoGen.ffmpeg.<>c.<.cctor>b__7_242()
 at FFmpeg.AutoGen.ffmpeg.avformat_network_init()
 at VideoStreamServer..ctor() in C:\Users\phlfo\Downloads\cfolder\server\ConsoleApp\Program.cs:line 20
 at VideoStreamServer.Main() in C:\Users\phlfo\Downloads\cfolder\server\ConsoleApp\Program.cs:line 36



I have FFmpeg.AutoGen package installed through VS i originally started with 7.0 but then switched to 5.0 to see if an older version might work (it did not). I also have the files in the same directory as the .exe for testing purposes as seen in the screenshot. Can someone please help me figure out this error.



-
aarch64 : vvc : Fix compilation of alf.S with MSVC 2022 17.7 and older
23 juillet 2024, par Martin Storsjöaarch64 : vvc : Fix compilation of alf.S with MSVC 2022 17.7 and older
Use the "ldur" instruction explicitly, instead of having the
assembler implicitly convert "ldr" instructions to "ldur".This fixes build errors like these :
libavcodec\aarch64\vvc\alf.o.asm(1023) : error A2518 : operand 2 : Memory offset must be aligned
ldr q22, [x3, #24]
libavcodec\aarch64\vvc\alf.o.asm(1024) : error A2518 : operand 2 : Memory offset must be aligned
ldr q24, [x2, #24]
libavcodec\aarch64\vvc\alf.o.asm(1393) : error A2518 : operand 2 : Memory offset must be aligned
ldr q22, [x3, #24]
libavcodec\aarch64\vvc\alf.o.asm(1394) : error A2518 : operand 2 : Memory offset must be aligned
ldr q24, [x2, #24]Signed-off-by : Martin Storsjö <martin@martin.st>
-
avcodec/vvcdec : Fix compiling with MSVC 2022 17.8 and older
26 juin 2024, par Martin Storsjöavcodec/vvcdec : Fix compiling with MSVC 2022 17.8 and older
Versions of MSVC older than 17.9 error out here with the following
error :src/libavcodec/vvc/filter.c(815) : error C2059 : syntax error : '}'
src/libavcodec/vvc/filter.c(832) : error C2065 : 'all_zero_bs' : undeclared identifier
src/libavcodec/vvc/filter.c(836) : error C2065 : 'all_zero_bs' : undeclared identifierThis was a regression from 5b9320b209c727ab2df3e76f77aad676f986c8e4.
Signed-off-by : Martin Storsjö <martin@martin.st>