
Recherche avancée
Autres articles (111)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)
Sur d’autres sites (10725)
-
FFmpeg RTSP stream to remote MediaMTX server disconnects after a few seconds [closed]
13 juin, par RorschyI'm new to RTSP and MediaMTX, and I'm trying to live stream my screen using FFmpeg and MediaMTX for a specific use case.


Everything works perfectly when both FFmpeg and MediaMTX run on the same machine.
However, when I move MediaMTX to a remote server, the stream becomes unstable — I can't maintain a connection or view the stream reliably.


Here is the FFmpeg command I'm using from the client machine :


ffmpeg -f gdigrab -framerate 10 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -f lavfi -i anullsrc -vcodec libx264 -tune zerolatency -g 30 -sc_threshold 0 -preset ultrafast -tune zerolatency -f rtsp rtsp:///live/stream



And here’s the relevant MediaMTX log output on the remote server :


2025/06/12 14:28:44 INF [RTSP] [conn :35798] opened
2025/06/12 14:28:44 INF [RTSP] [session 2e487869] created by :35798
2025/06/12 14:28:44 INF [RTSP] [session 2e487869] is publishing to path 'live/stream', 2 tracks (H264, MPEG-4 Audio)
2025/06/12 14:28:45 INF [WebRTC] [session 8a909818] created by :47296
2025/06/12 14:28:45 WAR [WebRTC] [session 8a909818] skipping track 2 (MPEG-4 Audio)
2025/06/12 14:28:47 INF [WebRTC] [session dd0d3af7] created by :46306
2025/06/12 14:28:47 WAR [WebRTC] [session dd0d3af7] skipping track 2 (MPEG-4 Audio)
2025/06/12 14:28:49 INF [WebRTC] [session 5f853024] created by :46320
2025/06/12 14:28:49 WAR [WebRTC] [session 5f853024] skipping track 2 (MPEG-4 Audio)
2025/06/12 14:28:51 INF [WebRTC] [session 3edba9a8] created by :46342
2025/06/12 14:28:51 WAR [WebRTC] [session 3edba9a8] skipping track 2 (MPEG-4 Audio)
2025/06/12 14:28:53 INF [WebRTC] [session 4be5bd9b] created by :46352
2025/06/12 14:28:53 WAR [WebRTC] [session 4be5bd9b] skipping track 2 (MPEG-4 Audio)
2025/06/12 14:28:54 INF [RTSP] [conn :35798] closed: terminated
2025/06/12 14:28:54 INF [RTSP] [session 2e487869] destroyed: session timed out
2025/06/12 14:28:54 INF [WebRTC] [session 8a909818] closed: terminated
2025/06/12 14:28:54 INF [WebRTC] [session 3edba9a8] closed: terminated
2025/06/12 14:28:54 INF [WebRTC] [session 5f853024] closed: terminated



My questions :


- 

- What could be causing the RTSP stream to disconnect when streaming to a remote MediaMTX server ?
- Are there any recommended network settings or MediaMTX configuration tweaks to ensure a stable stream over the internet ?






Any help or guidance would be greatly appreciated. Thanks !


-
Is this a problem in my command, the stream, or FFMPEG itself ? [closed]
10 juin, par Ali MustafaI am trying to download a section from approximately 06:40:00 to 06:44:00 from this stream : https://kick.com/grossgore/videos/8d36c089-ff2b-4167-9c92-bc8a3a9d033b


I found the m3u8 URL : https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/playlist.m3u8


I run the following command :


ffmpeg -ss 06:40:00 -to 06:44:00 -i https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/playlist.m3u8 -c copy out.mp4



The command runs for a while, but for some reason the output file is empty once the program has finished. How do I figure out what the problem is ?


Log :


ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
 built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
 configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
 libavutil 56. 70.100 / 56. 70.100
 libavcodec 58.134.100 / 58.134.100
 libavformat 58. 76.100 / 58. 76.100
 libavdevice 58. 13.100 / 58. 13.100
 libavfilter 7.110.100 / 7.110.100
 libswscale 5. 9.100 / 5. 9.100
 libswresample 3. 9.100 / 3. 9.100
 libpostproc 55. 9.100 / 55. 9.100
[hls @ 0x633e19ea3200] Skip ('#EXT-X-VERSION:3')
[hls @ 0x633e19ea3200] Skip ('#ID3-EQUIV-TDTG:2025-05-25T21:04:39')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-TWITCH-ELAPSED-SECS:0.000')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-TWITCH-TOTAL-SECS:29231.935')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:56:26.675Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:56:39.175Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:56:51.675Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T12:57:04.175Z')
...
...
...
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:38:43.058Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:38:55.558Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-DISCONTINUITY')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-TWITCH-DISCONTINUITY')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:39:56.883Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T17:40:09.383Z')
...
...
...
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T21:04:17.516Z')
[hls @ 0x633e19ea3200] Skip ('#EXT-X-PROGRAM-DATE-TIME:2025-05-25T21:04:30.016Z')
[hls @ 0x633e19ea3200] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/0.ts' for reading
[hls @ 0x633e19ea3200] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1.ts' for reading
Input #0, hls, from 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/playlist.m3u8':
 Duration: 08:07:11.94, start: 64.171000, bitrate: 0 kb/s
 Program 0 
 Metadata:
 variant_bitrate : 0
 Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp
 Metadata:
 variant_bitrate : 0
 Stream #0:1: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 60 tbr, 90k tbn, 120 tbc
 Metadata:
 variant_bitrate : 0
 Stream #0:2: Data: timed_id3 (ID3 / 0x20334449)
 Metadata:
 variant_bitrate : 0
Output #0, mp4, to 'out.mp4':
 Metadata:
 encoder : Lavf58.76.100
 Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 60 tbr, 90k tbn, 90k tbc
 Metadata:
 variant_bitrate : 0
 Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp
 Metadata:
 variant_bitrate : 0
Stream mapping:
 Stream #0:1 -> #0:0 (copy)
 Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[hls @ 0x633e19ea3200] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1921.ts' for reading
[hls @ 0x633e19ea3200] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1922.ts' for reading
[https @ 0x633e1a43f9c0] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1923.ts' for reading
[https @ 0x633e1a877300] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1924.ts' for reading
[https @ 0x633e1a43f9c0] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1925.ts' for reading
[https @ 0x633e1a877300] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/1926.ts' for reading
...
...
...
[https @ 0x633e1a877300] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/2338.ts' for reading
[https @ 0x633e1a43f9c0] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/2339.ts' for reading
[https @ 0x633e1a877300] Opening 'https://stream.kick.com/ivs/v1/196233775518/hDSBAWziz2jA/2025/5/25/12/56/LrW3TwZUg7Xk/media/hls/1080p60/2340.ts' for reading
frame= 0 fps=0.0 q=-1.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A speed= 0x 
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown



-
exe file not executing from deployed ASP.NET MVC app in TAS (Tanzu /PCF)
24 juin, par Darshan AdakaneI am facing an issue for my ASP.NET MVC web application on .NET 4 being deployed to TAS.


I am trying to do image compression using
ffmpeg.exe
.

While it is working on my local machine, I get an "500 internal server error" when deployed to TAS (tanzu application server). I am using
hwc_buildpack
and storing the file inPath.GetTemp()
folder for testing.

applications:
- name: MyApp-Dev
 memory: 1G
 instances: 1
 stack: windows
 buildpacks:
 - hwc_buildpack
 path: \MyAppnew\obj\Release\Package\PackageTmp
 env:
 services:
 routes:
 - route: myapp-dev.apps.company.com
 - route: myapp-dev.company.com



I also see that the
.exe
is being published when app I deployed. I am assuming if TAS has NO permission to read exe or read exe 'not allowed' policy.

This is my code :


[HttpPost]
[Route("uploadimage")]
public async Task<ihttpactionresult> UploadImage()
{
 try
 {
 if (!Request.Content.IsMimeMultipartContent())
 return BadRequest("Unsupported media type.");

 Console.WriteLine("UploadImage method started.");

 var provider = new MultipartMemoryStreamProvider();
 await Request.Content.ReadAsMultipartAsync(provider);

 Console.WriteLine($"Total Files available: {provider.Contents.Count}, {provider.Contents}");

 foreach (var file in provider.Contents)
 {
 try
 {
 var imageFile = await file.ReadAsByteArrayAsync();
 Console.WriteLine($"imageFile, { imageFile.Length }");
 var rawFileName = file.Headers.ContentDisposition.FileName.Trim('"');
 Console.WriteLine($"rawFileName, {rawFileName}");
 var fileName = Path.GetFileName(rawFileName); // Sanitize filename
 Console.WriteLine($"fileName, {fileName}");

 // Check file size limit (300MB)
 if (imageFile.Length > 300 * 1024 * 1024) // 300MB limit
 {
 Console.WriteLine("File size exceeds 300MB limit.");
 return BadRequest("File size exceeds 300MB limit.");
 }

 var inputFilePath = Path.Combine(_uploadFolder, fileName);
 Console.WriteLine($"inputFilePath, {inputFilePath}");

 var outputFilePath = Path.Combine(_uploadFolder, "compressed_" + fileName);
 Console.WriteLine($"outputFilePath, {outputFilePath}");

 // Save uploaded file to disk
 File.WriteAllBytes(inputFilePath, imageFile);

 // Check if the input file exists
 if (!File.Exists(inputFilePath))
 {
 Console.WriteLine($"Input file does not exist: {inputFilePath}");
 return InternalServerError(new Exception($"❌ Input file does not exist: {inputFilePath}"));
 }

 //Console.WriteLine($"✅ FFmpeg found at path: {ffmpegFullPath}");

 await FFMpegArguments
 .FromFileInput(inputFilePath)
 .OutputToFile(outputFilePath, overwrite: true, options => options
 .WithCustomArgument("-vf scale=800:-1")
 .WithCustomArgument("-q:v 10")
 )
 .ProcessAsynchronously();

 Console.WriteLine($"outputFilePath, {outputFilePath}");

 // Check if the output file was created
 if (File.Exists(outputFilePath))
 {
 var fileInfo = new FileInfo(outputFilePath); // Get file info

 Console.WriteLine($"outputFileInfoPropsFullName, {fileInfo.FullName}");
 Console.WriteLine($"outputFileInfoPropsLength, {fileInfo.Length}");

 var compressedFileBytes = File.ReadAllBytes(outputFilePath);
 var compressedFileBase64 = Convert.ToBase64String(compressedFileBytes);

 return Ok(new
 {
 Message = "Image uploaded and compressed successfully.",
 CompressedImagePath = outputFilePath,
 CompressedFileSize = fileInfo.Length, // Size in bytes
 CompressedFileBase64 = compressedFileBase64
 });
 }
 else
 {
 Console.WriteLine("OutputFilePath File not exists.");
 return InternalServerError(new Exception($"❌ Failed to create compressed file: {outputFilePath}"));
 });
 }
 catch (Exception ex)
 {
 Console.WriteLine($"File TRYCATCH:{ex}");
 return InternalServerError(new Exception("Image compression failed: " + ex.Message));
 }
 }
 }
 catch (Exception ex)
 {
 Console.WriteLine($"Method TRYCATCH:{ex}");
 throw;
 }

 return BadRequest("No image file uploaded.");
}
</ihttpactionresult>


I'm getting this error in my tanzu environment logs from the code when I execute :


await FFMpegArguments



This is the exception log :


FFMpegCore.Exceptions.FFMpegException: ffmpeg was not found on your system



I also see that the
.exe
files do exist in TAS in these logs :

2025-06-13T16:07:55.878+05:30 [APP/PROC/WEB/0] [OUT] PATH of FFmpeg Executable: C:\Users\vcap\app\ffmpeg-bin\ffmpeg.exe
2025-06-13T16:07:55.878+05:30 [APP/PROC/WEB/0] [OUT] PATH of ffmpegPath: C:\Users\vcap\app\ffmpeg-bin
2025-06-13T16:07:55.878+05:30 [APP/PROC/WEB/0] [OUT] PATH of BaseDirectory: C:\Users\vcap\app\
2025-06-13T16:07:55.881+05:30 [APP/PROC/WEB/0] [OUT] TempPath: C:\Users\vcap\AppData\Local\Temp\ 
 2025-06-24T18:39:50.684+05:30 [APP/PROC/WEB/0] [OUT] at MCANew.Controllers.Api.MessagesController.<uploadimage>d__6.MoveNext() in I:\Agents\Agent-Win-B\_work\3033\s\MCANew\Controllers\Api\MessagesController.cs:line 133
2025-06-24T18:39:50.684+05:30 [APP/PROC/WEB/0] [OUT] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
2025-06-24T18:39:50.684+05:30 [APP/PROC/WEB/0] [OUT] --- End of stack trace from previous location where exception was thrown ---
2025-06-24T18:39:50.684+05:30 [APP/PROC/WEB/0] [OUT] at FFMpegCore.FFMpegArgumentProcessor.<processasynchronously>d__24.MoveNext()
2025-06-24T18:39:50.684+05:30 [APP/PROC/WEB/0] [OUT] at FFMpegCore.FFMpegArgumentProcessor.PrepareProcessArguments(FFOptions ffOptions, CancellationTokenSource& cancellationTokenSource)
2025-06-24T18:39:50.684+05:30 [APP/PROC/WEB/0] [OUT] at FFMpegCore.Helpers.FFMpegHelper.VerifyFFMpegExists(FFOptions ffMpegOptions)
2025-06-24T18:39:50.684+05:30 [APP/PROC/WEB/0] [OUT] File TRYCATCH:FFMpegCore.Exceptions.FFMpegException: ffmpeg was not found on your system
</processasynchronously></uploadimage>


My objective is to run successfully exe on TAS and image compression to happen.