Recherche avancée

Médias (1)

Mot : - Tags -/remix

Autres articles (78)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie 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 (...)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

Sur d’autres sites (11173)

  • PHP & FFMPEG running on AWS worker finishes 2/3 of operations properly then fails

    1er novembre 2016, par jreikes

    I have a PHP application (using the Laravel 5.3 framework) that performs several operations on video after upload (transcoding, thumbnail generation, etc.). Everything works great locally. But it works a little differently in AWS and that seems to be causing problems.

    In AWS, uploads go to S3, then the EC2 workers pull those files into a local temp folder, perform about 8 operations with FFMPEG via shell_exec() (storing the results into the temp folder), then transfer the finished files back to S3. The first 6 operations (which are related to transcoding) finish properly. The last 2 operations (which create thumbnails) usually fail (about 1/10 times I test it, the whole thing works — inexplicably).

    I have a WorkingCopy class to give me relative and fully qualified paths, as needed, and to automatically delete temp files after completion. I also have a ColdStroage class to handle the S3 data. All 8 FFMPEG operations are structured the same way using this class.

    In trying to troubleshoot the problem, I tried running the FFMPEG thumbnail generation via SSH and found that it was failing. It’s this error :

    [image2 @ 0x2e43320] Could not open file : path/filename.png
    av_interleaved_write_frame(): Input/output error

    https://trac.ffmpeg.org/wiki/Errors explains that this happens when the destination folder doesn’t exist. But, while testing via SSH, I was getting this error even when the destination folder existed. If I CHMOD 777 the destination folder, the operation completes successfully via SSH.

    Seems simple enough, right ? Thing is, my WorkingCopy class creates the temp folder with mkdir($folderName, 0777, true) — so the folders should already be 777. They actually don’t appear to be truly 777 when I check them via SSH, but still — why do the first 6 operations work ? Just to be sure this wasn’t the issue, I added a CHMOD to my script just before thumbnail creation and it still failed.

    Here’s one more weird thing... If I comment out those last two FFMPEG operations, then transcoding (the preceding operation) fails. Based on that, I thought maybe the file system needs a moment to finish writing the FFMPEG output before proceeding, so I added sleep(5) before the end of the script. It still doesn’t work.

    I can’t share the full code publicly, but here’s the general format of the FFMPEG calls

    $pathForLargeThumbnails = 'large_thumbnails';

    $thumbnailLargeWorkingCopy = new WorkingCopy($pathForLargeThumbnails);
    $thumbnailLarge = new ColdStorage($pathForLargeThumbnails);

    $shellErrors .= shell_exec(
         "/usr/local/bin/ffmpeg/ffmpeg"
       . " -loglevel error"
       . " -i " . "\"" . $originalVideoStream->fullPath . "\""
       . " -y"
       . " -vf thumbnail -frames:v 1"
       . " \"" . $thumbnailLargeWorkingCopy->fullPath . "\""
    );

    $thumbnailLarge->put($thumbnailLargeWorkingCopy->get());

    Anyone know why this succeeds 6 times and then fails twice at the end ?

  • Slowing down 960 fps video with ffmpeg (setpts is not working)

    7 novembre 2016, par haridsv

    I am trying to slow down a video recorded on an Android phone at 960fps. I found a lot of previous posts and blogs that all basically say the same thing, that you need to change the "presentation timestamp" (pts). I also found the official documentation that is saying the same thing. The command-line basically looks like this :

    ffmpeg -i input.mp4 -filter:v "setpts=4*PTS" -r 30 -y output.mp4

    I copied the video file using Android Filter Transfer and when I use the above command-line, it works to slow it down, but the resulting output is choppy. The output of the ffmpeg also indicates that it is duplicating the frames :

    frame=  687 fps=103 q=-1.0 Lsize=    4454kB time=00:00:22.80 bitrate=1600.1kbits/s dup=515 drop=0 speed=3.42x

    Running ffprobe on the file shows this :

    ffprobe version 3.1.1 Copyright (c) 2007-2016 the FFmpeg developers
     built with Apple LLVM version 7.3.0 (clang-703.0.31)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/3.1.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-lda
     libavutil      55. 28.100 / 55. 28.100
     libavcodec     57. 48.101 / 57. 48.101
     libavformat    57. 41.100 / 57. 41.100
     libavdevice    57.  0.101 / 57.  0.101
     libavfilter     6. 47.100 /  6. 47.100
     libavresample   3.  0.  0 /  3.  0.  0
     libswscale      4.  1.100 /  4.  1.100
     libswresample   2.  1.100 /  2.  1.100
     libpostproc    54.  0.100 / 54.  0.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VID_20161030_213810.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: isommp42
       creation_time   : 2016-10-30 16:08:14
       location        : +17.3874+078.3395/
       location-eng    : +17.3874+078.3395/
       com.android.version: 6.0.1
       com.android.capture.fps: 120.000000
     Duration: 00:00:05.73, start: 0.000000, bitrate: 14991 kb/s
       Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1280x720, 13859 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 90k tbn, 180k tbc (default)
       Metadata:
         creation_time   : 2016-10-30 16:08:14
         handler_name    : VideoHandle

    This seems to detect that the video is 30 fps instead of 960 fps, which is probably why it is filling in with duplicate frames instead of using the existing frames.

    I recording the video on Lenovo Z2 Plus (AKA Zuk Z2). If I playback the video using the built-in player at a slow speed it looks extremely smooth, so the frames are definitely there. Could someone help me figure out the right way ? The file is available here (about 10MB), in case someone would like to try it.

    Update : Video playback at slo-mo on the phone recorded with another phone. Notice how smooth and slow the sparks are thrown around, which is impossible if the original video is 30fps.

  • FFmpeg UHD encoding (piping to x265)

    15 décembre 2016, par TEB

    Update based on the good answers :

    Source :
    Prores HQ 4:2:2 10bit
    4kp25
    REC:2020

    Heres my syntax now :

    ffmpeg -pix_fmt yuv422p10 -i JUNGLES_PLUTO_UHD_HDR_HLG.mov -pix_fmt yuv420p10 -f yuv4mpegpipe - | x265 --y4m - --input-res 3840x2160 --fps 25 --preset veryslow --b-adapt 2 --ref 4 --no-open-gop --keyint 50 --min-keyint 50 --no-scenecut --profile main --level-idc 5 --no-high-tier --sar 1:1 --colorprim bt709 --transfer bt709 --colormatrix bt709 --bframes 3 --hrd --vbv-bufsize 25000 --bitrate 25000 --vbv-maxrate 25000 --aud --no-info --b-pyramid -o test.h265

    output: Option pixel_format not found.

    Target : (non-hdr UHD STB)

    hevc.file
    rec:709
    • Question 1 : How does one pipe correctly from ffmpeg to x265 ?
    • Question 2 : How can one make sure the cpus are all taxed ? I have
      16vcores, but im getting like 2-3% usage on all
    • Question 3 : Any suggestions on the parameters to increase the
      quality ?
    • Question 4 : Since the content is BT2020, but my target device is not currently able to display/render BT2020, but BT709.. how would i change the syntax to enable this in the best way..(downscale it)
      Would :

      —colorprim bt2020 —transfer bt2020 —colormatrix bt709

    be correct ?