Recherche avancée

Médias (1)

Mot : - Tags -/ipad

Autres articles (105)

  • Déploiements possibles

    31 janvier 2010, par

    Deux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
    L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
    Version mono serveur
    La version mono serveur consiste à n’utiliser qu’une (...)

  • (Dés)Activation de fonctionnalités (plugins)

    18 février 2011, par

    Pour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
    SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
    Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
    MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...)

  • 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 (9022)

  • Ffmpeg HLS conversion error on AWS Lambda - ffmpeg was killed with signal SIGSEGV

    20 octobre 2023, par RtiM0

    I'm trying to convert video files into HLS streams on a AWS Lambda. The ffmpeg configuration I have setup works for normal (Non HLS) transcoding, but in case of HLS it throws the following error :

    


    stderr:
frame=  341 fps= 84 q=34.0 q=32.0 q=28.0 size=N/A time=00:00:12.52 bitrate=N/A speed= 3.1x    
frame=  385 fps= 85 q=34.0 q=31.0 q=27.0 size=N/A time=00:00:13.97 bitrate=N/A speed=3.08x    
frame=  433 fps= 86 q=33.0 q=30.0 q=27.0 size=N/A time=00:00:15.55 bitrate=N/A speed=3.08x    
[hls @ 0x702c480] Cannot use rename on non file protocol, this may lead to races and temporary partial files
[hls @ 0x702c480] Opening '/tmp/stream_0.m3u8' for writing
[hls @ 0x702c480] Opening '/tmp/stream_1.m3u8' for writing
[hls @ 0x702c480] Opening '/tmp/stream_2.m3u8' for writing
[hls @ 0x702c480] Opening '/tmp/master.m3u8' for writing
ffmpeg was killed with signal SIGSEGV


    


    And I error thrown by fluent-ffmpeg is this :

    


    2023-03-06T10:21:44.555Z    15a0a43b-5e24-42ac-ae72-fe04f0c72a3e    ERROR   Invoke Error    &#xA;{&#xA;    "errorType": "Error",&#xA;    "errorMessage": "ffmpeg was killed with signal SIGSEGV",&#xA;    "stack": [&#xA;        "Error: ffmpeg was killed with signal SIGSEGV",&#xA;        "    at ChildProcess.<anonymous> (/var/task/node_modules/fluent-ffmpeg/lib/processor.js:180:22)",&#xA;        "    at ChildProcess.emit (node:events:513:28)",&#xA;        "    at ChildProcess._handle.onexit (node:internal/child_process:291:12)"&#xA;    ]&#xA;}&#xA;</anonymous>

    &#xA;

    This is the code I run on AWS Lambda to convert video files into HLS :

    &#xA;

    export const compressToHLS = (sourcePath, outputFolder) =>&#xA;  new Promise((resolve, reject) => {&#xA;    Ffmpeg(sourcePath)&#xA;      .complexFilter([&#xA;        {&#xA;          filter: "split",&#xA;          options: "3",&#xA;          inputs: "v:0",&#xA;          outputs: ["v1", "v2", "v3"],&#xA;        },&#xA;        {&#xA;          filter: "scale",&#xA;          options: {&#xA;            w: 1280,&#xA;            h: 720,&#xA;          },&#xA;          inputs: "v1",&#xA;          outputs: "v1out",&#xA;        },&#xA;        {&#xA;          filter: "scale",&#xA;          options: {&#xA;            w: 960,&#xA;            h: 540,&#xA;          },&#xA;          inputs: "v2",&#xA;          outputs: "v2out",&#xA;        },&#xA;        {&#xA;          filter: "scale",&#xA;          options: {&#xA;            w: 640,&#xA;            h: 360,&#xA;          },&#xA;          inputs: "v3",&#xA;          outputs: "v3out",&#xA;        },&#xA;      ])&#xA;      .outputOptions([&#xA;        "-map [v1out]",&#xA;        "-c:v:0",&#xA;        "libx264",&#xA;        "-b:v 3000000",&#xA;        "-map [v2out]",&#xA;        "-c:v:1",&#xA;        "libx264",&#xA;        "-b:v 2000000",&#xA;        "-map [v3out]",&#xA;        "-c:v:2",&#xA;        "libx264",&#xA;        "-b:v 1000000",&#xA;      ])&#xA;      .outputOptions([&#xA;        "-map a:0",&#xA;        "-c:a:0 aac",&#xA;        "-b:a:0 96000",&#xA;        "-ar 48000",&#xA;        "-ac 2",&#xA;        "-map a:0",&#xA;        "-c:a:1 aac",&#xA;        "-b:a:1 96000",&#xA;        "-ar 48000",&#xA;        "-ac 2",&#xA;        "-map a:0",&#xA;        "-c:a:2 aac",&#xA;        "-b:a:2 96000",&#xA;        "-ar 48000",&#xA;        "-ac 2",&#xA;      ])&#xA;      .outputOptions([&#xA;        "-f hls",&#xA;        "-hls_time 10",&#xA;        "-hls_playlist_type vod",&#xA;        "-hls_flags independent_segments",&#xA;        "-hls_segment_type mpegts",&#xA;        `-hls_segment_filename ${outputFolder}/%v_%d.ts`,&#xA;        "-master_pl_name master.m3u8",&#xA;      ])&#xA;      .outputOption("-var_stream_map", "v:0,a:0 v:1,a:1 v:2,a:2")&#xA;      .outputOption("-preset veryfast")&#xA;      .output(`${outputFolder}/stream_%v.m3u8`)&#xA;      .on("start", (cmdline) => console.log(cmdline))&#xA;      .on("progress", (progress) => {&#xA;        let prog = Math.floor(progress.percent * 10) / 10;&#xA;        if (Math.round(prog) % 10 == 0) {&#xA;          console.log(`${prog}% complete`);&#xA;        }&#xA;      })&#xA;      .on("error", (err, stdout, stderr) => {&#xA;        if (err) {&#xA;          console.log(err.message);&#xA;          console.log("stdout:\n" &#x2B; stdout);&#xA;          console.log("stderr:\n" &#x2B; stderr);&#xA;          reject(err);&#xA;        }&#xA;      })&#xA;      .on("end", () => resolve())&#xA;      .run();&#xA;  });&#xA;

    &#xA;

    In this code the sourcePath is usually a presigned URL from S3 (But I have also tried to download a file on /tmp and setting sourcePath as the path to the downloaded file) and outputFolder is tmpdir() which is /tmp.

    &#xA;

    I have the lambda settings configured to have 10GB of memory and 10GB of ephemeral storage (the maximum allowed).

    &#xA;

  • App Intents FFmpeg-iOS operation not permitted

    2 octobre 2023, par apo_p9

    Using latest iOS and Xcode, I have an AppIntent to which Im passing a video file from iOS Shortcuts, Im using an IntentFile parameter to read that in the intent. Then Im using FFmpeg-iOS to generate a single frame from the video.

    &#xA;

    ...&#xA;@Parameter(title: "Media", supportedTypeIdentifiers: ["public.image", "public.video"], inputConnectionBehavior: .connectToPreviousIntentResult)&#xA;var media: IntentFile&#xA;...&#xA;let mediaPath = media.fileURL!.absoluteString;&#xA;let posterPath = mediaPath.replacingOccurrences(of: media.filename, with: "poster.jpg")&#xA;_ = ffmpeg(["FFmpeg-iOS", "-i", mediaPath, "-frames:v", "1", posterPath])&#xA;

    &#xA;

    Here is the output :

    &#xA;

    ffmpeg(_:) ["FFmpeg-iOS", "-i", "file:///var/mobile/tmp/com.apple.WorkflowKit.BackgroundShortcutRunner/IMG_2751.mov", "-frames:v", "1", "file:///var/mobile/tmp/com.apple.WorkflowKit.BackgroundShortcutRunner/poster.jpg"]&#xA;ffmpeg version N-109970-g7dc0944ce2 Copyright (c) 2000-2023 the FFmpeg developers&#xA;  built with Apple clang version 14.0.0 (clang-1400.0.29.202)&#xA;  configuration: --prefix=/Users/changbeomahn/Projects/FFmpeg-iOS/build/install/FFmpeg/arm64 --enable-cross-compile --disable-debug --disable-doc --enable-pic --disable-audiotoolbox --disable-sdl2 --disable-libxcb --target-os=darwin --arch=arm64 --cc=&#x27;xcrun -sdk iphoneos clang&#x27; --as=&#x27;gas-preprocessor.pl -arch aarch64 -- xcrun -sdk iphoneos clang&#x27; --extra-cflags=&#x27;-arch arm64 -mios-version-min=13.0 -I/Users/changbeomahn/Projects/FFmpeg-iOS/build/install/FFmpeg/arm64/include&#x27; --extra-ldflags=&#x27;-arch arm64 -mios-version-min=13.0 -L/Users/changbeomahn/Projects/FFmpeg-iOS/build/install/FFmpeg/arm64/lib&#x27;&#xA;HookMain: setjmp=0&#xA;FFmpeg_exit=1, will longjmp&#xA;HookMain: setjmp=1&#xA;  libavutil      58.  3.100 / 58.  3.100&#xA;  libavcodec     60.  6.100 / 60.  6.100&#xA;  libavformat    60.  4.100 / 60.  4.100&#xA;  libavdevice    60.  2.100 / 60.  2.100&#xA;  libavfilter     9.  4.100 /  9.  4.100&#xA;  libswscale      7.  2.100 /  7.  2.100&#xA;  libswresample   4. 11.100 /  4. 11.100&#xA;file:///var/mobile/tmp/com.apple.WorkflowKit.BackgroundShortcutRunner/IMG_2751.mov: Operation not permitted&#xA;

    &#xA;

    The issue is in the last line : Operation not permitted

    &#xA;

    I also tried just writing a file to the same directory as the media file :

    &#xA;

    let str = "Super long string here"&#xA;let filename = media.fileURL!.absoluteString.replacingOccurrences(of: media.filename, with: "asd.txt")&#xA;&#xA;do {&#xA;    try str.write(to: URL(string: filename)!, atomically: true, encoding: String.Encoding.utf8)&#xA;} catch {&#xA;    print(error)&#xA;}&#xA;

    &#xA;

    But got the error :

    &#xA;

    Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “asd.txt” in the folder “com.apple.WorkflowKit.BackgroundShortcutRunner”." UserInfo={NSFilePath=/var/mobile/tmp/com.apple.WorkflowKit.BackgroundShortcutRunner/asd.txt, NSUnderlyingError=0x280f09aa0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}&#xA;

    &#xA;

    Apparently there is a permission issue, I tried googling about "AppIntents file permissions"/"shortcut permissions"/etc but found nothing. Im not a mobile developer so Im totally clueless. The same code though works fine in the simulator, it gets the permission issue only on device.

    &#xA;

  • FFmpeg dynamic cropping using sendcmd correct syntax ?

    19 avril 2024, par Sulli

    I'm trying to dynamically crop a video using FFmpeg's sendcmd filter based on coordinates specified in a text file, but the crop commands do not seem to be taking effect. Here's the format of the commands I've tried and the corresponding FFmpeg command I'm using.

    &#xA;

    Following the documentation https://ffmpeg.org/ffmpeg-filters.html#sendcmd_002c-asendcmd, commands in the text file (coordinates.txt) like this :

    &#xA;

    0.05 [enter] crop w=607:h=1080:x=0:y=0;&#xA;0.11 [enter] crop w=607:h=1080:x=0:y=0;&#xA;...&#xA;

    &#xA;

    Ffmpeg command :

    &#xA;

    ffmpeg -i &#x27;10s.mp4&#x27; -filter_complex "[0:v]sendcmd=f=coordinates.txt" -c:v libx264 -c:a copy -r 30 output.mp4&#xA;

    &#xA;

    This doesn’t seem to do anything.

    &#xA;

    And with the commands in the text file (coordinates.txt) like this :

    &#xA;

    0.05    crop w 607, crop h 1080, crop x 0, crop y 0;&#xA;0.11    crop w 607, crop h 1080, crop x 0, crop y 0;&#xA;...&#xA;

    &#xA;

    Ffmpeg command :

    &#xA;

    ffmpeg -i &#x27;10s.mp4&#x27; -filter_complex "[0:v]sendcmd=f=coordinates.txt,crop" -c:v libx264 -c:a copy -r 30 output.mp4&#xA;

    &#xA;

    (following this answer https://stackoverflow.com/a/67508233/1967110)

    &#xA;

    This one does something, but something very messy. It looks like it crops at the correct x, but does not take into account the y, w or h, and it puts the crop at the right side of the input video.

    &#xA;

    Edit : what I’m trying to do is create a 607x1080 (portrait format, 9:16) video from a 1920x1080 video, with the x parameter varying across time (imagine sliding horizontally a 9:16 frame over a 16:9 video). So fixed w, h and y, just x varying.

    &#xA;

    I’m using this ffmpeg version :

    &#xA;

    ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers&#xA;built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)&#xA;configuration: --prefix=/home/ffmpeg-builder/release --pkg-config-flags=--static --extra-libs=-lm --disable-doc --disable-debug --disable-shared --disable-ffprobe --enable-static --enable-gpl --enable-version3 --enable-runtime-cpudetect --enable-avfilter --enable-filters --enable-nvenc --enable-nvdec --enable-cuvid --toolchain=hardened --disable-stripping --enable-opengl --pkgconfigdir=/home/ffmpeg-builder/release/lib/pkgconfig --extra-cflags=&#x27;-I/home/ffmpeg-builder/release/include -static-libstdc&#x2B;&#x2B; -static-libgcc &#x27; --extra-ldflags=&#x27;-L/home/ffmpeg-builder/release/lib -fstack-protector -static-libstdc&#x2B;&#x2B; -static-libgcc &#x27; --extra-cxxflags=&#x27; -static-libstdc&#x2B;&#x2B; -static-libgcc &#x27; --extra-libs=&#x27;-ldl -lrt -lpthread&#x27; --enable-ffnvcodec --enable-gmp --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libkvazaar --enable-libmp3lame --enable-libopus --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libshine --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtheora --enable-libvidstab --ld=g&#x2B;&#x2B; --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-openssl --enable-zlib --enable-nonfree --extra-libs=-lpthread --enable-pthreads --extra-libs=-lgomp&#xA;

    &#xA;