Recherche avancée

Médias (91)

Autres articles (62)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, 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 (...)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Mise à disposition des fichiers

    14 avril 2011, par

    Par défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
    Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
    Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)

Sur d’autres sites (9003)

  • Cutting sections with -ss and -t is not frame accurate

    16 avril 2024, par Théo Champion

    I'm using ffmpeg 6.0 to extract small sections from longer videos. According to the doc i can use the -ss option to specify the start time and the -t option to specify the duration and this should result in frame accurate cuts (since FFmpeg 2.1).

    


    However, in my testing i found that the cuts are not frame accurate. I'm using the following command :

    


    ffmpeg -ss 10 -i ffmpeg -ss 10 -i https://storage.googleapis.com/klap-assets/Frame%20Counter%20%5B4K%2C%2060%20FPS%5D%20%E2%80%93%200100.mp4   -t 10 -y -vcodec libx264 -acodec aac -movflags +faststart out2.mp4   -t 10 -y -vcodec libx264 -acodec aac -movflags +faststart out.mp4


    


    This result in a video that start at 9:57 (-2 frames) and ends at 19:57 (-2 frames) instead of 10:00 and 20:00.

    


    Also weird is that ffprobe on the resulting video show its duration being exactly 10 seconds.

    


    FFprobe of the resulting video :

    


    ffprobe version 6.0 Copyright (c) 2007-2023 the FFmpeg developers
  built with Apple clang version 14.0.0 (clang-1400.0.29.202)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.3.100
  Duration: 00:00:10.00, start: 0.000000, bitrate: 303 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 287 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
      vendor_id       : [0][0][0][0]
      encoder         : Lavc60.3.100 libx264
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : ISO Media file produced by Google Inc.
      vendor_id       : [0][0][0][0]


    


    I've done some testing with other videos and results are never totally frame accurate.

    


    What am i missing here ? How can i get frame accurate cuts with FFmpeg ?

    


  • 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.

    


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

    


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


    


    Ffmpeg command :

    


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


    


    This doesn’t seem to do anything.

    


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

    


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


    


    Ffmpeg command :

    


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


    


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

    


    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.

    


    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.

    


    I’m using this ffmpeg version :

    


    ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
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='-I/home/ffmpeg-builder/release/include -static-libstdc++ -static-libgcc ' --extra-ldflags='-L/home/ffmpeg-builder/release/lib -fstack-protector -static-libstdc++ -static-libgcc ' --extra-cxxflags=' -static-libstdc++ -static-libgcc ' --extra-libs='-ldl -lrt -lpthread' --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++ --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


    


  • 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.

    


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


    


    Here is the output :

    


    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"]
ffmpeg version N-109970-g7dc0944ce2 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 14.0.0 (clang-1400.0.29.202)
  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='xcrun -sdk iphoneos clang' --as='gas-preprocessor.pl -arch aarch64 -- xcrun -sdk iphoneos clang' --extra-cflags='-arch arm64 -mios-version-min=13.0 -I/Users/changbeomahn/Projects/FFmpeg-iOS/build/install/FFmpeg/arm64/include' --extra-ldflags='-arch arm64 -mios-version-min=13.0 -L/Users/changbeomahn/Projects/FFmpeg-iOS/build/install/FFmpeg/arm64/lib'
HookMain: setjmp=0
FFmpeg_exit=1, will longjmp
HookMain: setjmp=1
  libavutil      58.  3.100 / 58.  3.100
  libavcodec     60.  6.100 / 60.  6.100
  libavformat    60.  4.100 / 60.  4.100
  libavdevice    60.  2.100 / 60.  2.100
  libavfilter     9.  4.100 /  9.  4.100
  libswscale      7.  2.100 /  7.  2.100
  libswresample   4. 11.100 /  4. 11.100
file:///var/mobile/tmp/com.apple.WorkflowKit.BackgroundShortcutRunner/IMG_2751.mov: Operation not permitted


    


    The issue is in the last line : Operation not permitted

    


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

    


    let str = "Super long string here"
let filename = media.fileURL!.absoluteString.replacingOccurrences(of: media.filename, with: "asd.txt")

do {
    try str.write(to: URL(string: filename)!, atomically: true, encoding: String.Encoding.utf8)
} catch {
    print(error)
}


    


    But got the error :

    


    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"}}


    


    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.