Recherche avancée

Médias (91)

Autres articles (97)

  • Modifier la date de publication

    21 juin 2013, par

    Comment changer la date de publication d’un média ?
    Il faut au préalable rajouter un champ "Date de publication" dans le masque de formulaire adéquat :
    Administrer > Configuration des masques de formulaires > Sélectionner "Un média"
    Dans la rubrique "Champs à ajouter, cocher "Date de publication "
    Cliquer en bas de la page sur Enregistrer

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

Sur d’autres sites (10122)

  • Is this a problem in my command, the stream, or FFMPEG itself ? [closed]

    10 juin, par Ali Mustafa

    I 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 Adakane

    I 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 in Path.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]&#xA;[Route("uploadimage")]&#xA;public async Task<ihttpactionresult> UploadImage()&#xA;{&#xA;    try&#xA;    {&#xA;        if (!Request.Content.IsMimeMultipartContent())&#xA;            return BadRequest("Unsupported media type.");&#xA;&#xA;        Console.WriteLine("UploadImage method started.");&#xA;&#xA;        var provider = new MultipartMemoryStreamProvider();&#xA;        await Request.Content.ReadAsMultipartAsync(provider);&#xA;&#xA;        Console.WriteLine($"Total Files available: {provider.Contents.Count}, {provider.Contents}");&#xA;&#xA;        foreach (var file in provider.Contents)&#xA;        {&#xA;            try&#xA;            {&#xA;                var imageFile = await file.ReadAsByteArrayAsync();&#xA;                Console.WriteLine($"imageFile, { imageFile.Length }");&#xA;                var rawFileName = file.Headers.ContentDisposition.FileName.Trim(&#x27;"&#x27;);&#xA;                Console.WriteLine($"rawFileName, {rawFileName}");&#xA;                var fileName = Path.GetFileName(rawFileName); // Sanitize filename&#xA;                Console.WriteLine($"fileName, {fileName}");&#xA;&#xA;                // Check file size limit (300MB)&#xA;                if (imageFile.Length > 300 * 1024 * 1024) // 300MB limit&#xA;                {&#xA;                    Console.WriteLine("File size exceeds 300MB limit.");&#xA;                    return BadRequest("File size exceeds 300MB limit.");&#xA;                }&#xA;&#xA;                var inputFilePath = Path.Combine(_uploadFolder, fileName);&#xA;                Console.WriteLine($"inputFilePath, {inputFilePath}");&#xA;&#xA;                var outputFilePath = Path.Combine(_uploadFolder, "compressed_" &#x2B; fileName);&#xA;                Console.WriteLine($"outputFilePath, {outputFilePath}");&#xA;&#xA;                // Save uploaded file to disk&#xA;                File.WriteAllBytes(inputFilePath, imageFile);&#xA;&#xA;                // Check if the input file exists&#xA;                if (!File.Exists(inputFilePath))&#xA;                {&#xA;                    Console.WriteLine($"Input file does not exist: {inputFilePath}");&#xA;                    return InternalServerError(new Exception($"❌ Input file does not exist: {inputFilePath}"));&#xA;                }&#xA;&#xA;                //Console.WriteLine($"✅ FFmpeg found at path: {ffmpegFullPath}");&#xA;&#xA;                await FFMpegArguments&#xA;                .FromFileInput(inputFilePath)&#xA;                .OutputToFile(outputFilePath, overwrite: true, options => options&#xA;                    .WithCustomArgument("-vf scale=800:-1")&#xA;                    .WithCustomArgument("-q:v 10")&#xA;                    )&#xA;                    .ProcessAsynchronously();&#xA;&#xA;                Console.WriteLine($"outputFilePath, {outputFilePath}");&#xA;&#xA;                // Check if the output file was created&#xA;                if (File.Exists(outputFilePath))&#xA;                {&#xA;                    var fileInfo = new FileInfo(outputFilePath); // Get file info&#xA;&#xA;                    Console.WriteLine($"outputFileInfoPropsFullName, {fileInfo.FullName}");&#xA;                    Console.WriteLine($"outputFileInfoPropsLength, {fileInfo.Length}");&#xA;&#xA;                    var compressedFileBytes = File.ReadAllBytes(outputFilePath);&#xA;                    var compressedFileBase64 = Convert.ToBase64String(compressedFileBytes);&#xA;&#xA;                    return Ok(new&#xA;                    {&#xA;                        Message = "Image uploaded and compressed successfully.",&#xA;                        CompressedImagePath = outputFilePath,&#xA;                        CompressedFileSize = fileInfo.Length, // Size in bytes&#xA;                        CompressedFileBase64 = compressedFileBase64&#xA;                    });&#xA;                }&#xA;                else&#xA;                {&#xA;                    Console.WriteLine("OutputFilePath File not exists.");&#xA;                    return InternalServerError(new Exception($"❌ Failed to create compressed file: {outputFilePath}"));&#xA;                });&#xA;            }&#xA;            catch (Exception ex)&#xA;            {&#xA;                Console.WriteLine($"File TRYCATCH:{ex}");&#xA;                return InternalServerError(new Exception("Image compression failed: " &#x2B; ex.Message));&#xA;            }&#xA;        }&#xA;    }&#xA;    catch (Exception ex)&#xA;    {&#xA;        Console.WriteLine($"Method TRYCATCH:{ex}");&#xA;        throw;&#xA;    }&#xA;&#xA;    return BadRequest("No image file uploaded.");&#xA;}&#xA;</ihttpactionresult>

    &#xA;

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

    &#xA;

     await FFMpegArguments&#xA;

    &#xA;

    This is the exception log :

    &#xA;

    FFMpegCore.Exceptions.FFMpegException: ffmpeg was not found on your system&#xA;

    &#xA;

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

    &#xA;

    2025-06-13T16:07:55.878&#x2B;05:30 [APP/PROC/WEB/0] [OUT] PATH of FFmpeg Executable: C:\Users\vcap\app\ffmpeg-bin\ffmpeg.exe&#xA;2025-06-13T16:07:55.878&#x2B;05:30 [APP/PROC/WEB/0] [OUT] PATH of ffmpegPath: C:\Users\vcap\app\ffmpeg-bin&#xA;2025-06-13T16:07:55.878&#x2B;05:30 [APP/PROC/WEB/0] [OUT] PATH of BaseDirectory: C:\Users\vcap\app\&#xA;2025-06-13T16:07:55.881&#x2B;05:30 [APP/PROC/WEB/0] [OUT] TempPath: C:\Users\vcap\AppData\Local\Temp\ &#xA;    2025-06-24T18:39:50.684&#x2B;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&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] --- End of stack trace from previous location where exception was thrown ---&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] at FFMpegCore.FFMpegArgumentProcessor.<processasynchronously>d__24.MoveNext()&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] at FFMpegCore.FFMpegArgumentProcessor.PrepareProcessArguments(FFOptions ffOptions, CancellationTokenSource&amp; cancellationTokenSource)&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] at FFMpegCore.Helpers.FFMpegHelper.VerifyFFMpegExists(FFOptions ffMpegOptions)&#xA;2025-06-24T18:39:50.684&#x2B;05:30 [APP/PROC/WEB/0] [OUT] File TRYCATCH:FFMpegCore.Exceptions.FFMpegException: ffmpeg was not found on your system&#xA;</processasynchronously></uploadimage>

    &#xA;

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

    &#xA;

  • Compressing videos from a smartphone

    21 septembre 2019, par fejesjoco

    I have a Nexus 6p with the stock camera. It’s set to record at 1080p, 30fps. Here’s a 5 second sample (11 MB).

    Videos from this phone come out at about 17 Mbps on average. I tried to compress it with ffmpeg with -c:v libx264 -crf 23 -preset veryslow, the result comes out at about 5.5 MB, which is about 9 Mbps.

    I think this bitrate is a bit too much. When I look at torrent file listings, I can see high quality videos at 3 GB in size on average, and if such a movie is 90 minutes long on average, that is about 4-5 Mbps which sounds okay.

    I’m wondering, why the big difference ? I can notice that my video is noisy/grainy (which is expected from a phone), and that might reduce compressibility. I tried a few ffmpeg filters, like hqdn3d and atadenoise, but the noise mostly remained (maybe I didn’t play with it enough). Then I figured, the video is also shaky (which is also expected), and that might reduce compressibility too (and even makes temporal noise filtering less effective). I tried to stabilize it with the deshake filter, but that didn’t help either.

    I know I could just limit the bandwidth to whatever I like, but there must be a reason why ffmpeg thinks it needs a high bandwidth to maintain a certain quality, and a lower bandwidth would just decrease the quality.

    Why do these videos have such a high bitrate ? What’s the best way to compress them more while keeping or even increasing their quality ?