Recherche avancée

Médias (91)

Autres articles (20)

  • MediaSPIP Init et Diogène : types de publications de MediaSPIP

    11 novembre 2010, par

    À l’installation d’un site MediaSPIP, le plugin MediaSPIP Init réalise certaines opérations dont la principale consiste à créer quatre rubriques principales dans le site et de créer cinq templates de formulaire pour Diogène.
    Ces quatre rubriques principales (aussi appelées secteurs) sont : Medias ; Sites ; Editos ; Actualités ;
    Pour chacune de ces rubriques est créé un template de formulaire spécifique éponyme. Pour la rubrique "Medias" un second template "catégorie" est créé permettant d’ajouter (...)

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

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

Sur d’autres sites (5993)

  • FFMPEG failing in AWS Lambda

    18 février 2019, par Zaid Amir

    I am trying to create a transcoding function for short videos. The function is hosted on AWS Lambda. The problem is that AWS lambda seems to be missing something that FFMPEG requires, at least according to Amazon.

    I contacted Amazon earlier and this is their response to the issue :

    We found that the FFMPEG operations require at least libx264 and an
    acc library, both of which will have dependencies of their own. To
    troubleshoot the issue it will involve diving deeper into the full
    dependency chain. We can see that it works in the Amazon Linux
    environment however, the environment is similar but not identical to
    the lambda environment. There can be some dependencies that exist in
    Amazon Linux but not in lambda environment as Lambda runs on the
    container. Here, as FFmpeg is a third party software, diving deeper
    into the dependency chain and verifying the version compatibilities is
    very hard to do. Unfortunately going further, this is bound to go into
    architecture and code support which is out of AWS Support scope 1. I
    hope you understand our limitations. However should FFmpeg support
    have any questions specific to the Lambda platform, please do let us
    know and we will be happy to assist. We will be in better position to
    investigate further once you receive an update from the FFmpeg support
    suggesting an issue from Lambda end.

    Upon AWS suggestion, I contacted FFMPEG on the developers mailing list, my message was rejected with the reason being that its more suited to ffmpeg users mailing list than developers. I sent an email to ’ffmpeg-user@ffmpeg.org’ a week ago and did not get any response yet.

    I then went and built a dynamically linked ffmpeg version making sure to package all libraries, checked ddl on each one, then made a small lambda function that looped over all binaries and ddled each one of them, compared that to the output I got from Amazon Linux and the same dependencies/versions exists on both lambda and the AWS Linux instance yet ffmpeg still fails on lambda.

    You can find a detailed log file here : https://www.datafilehost.com/d/6e5e21bb

    And this is a sample of the errors I’m getting, repeated across the entire log file :

    2018-08-14T12:27:10.874Z [h264 @ 0x65c2fc0] concealing 2628 DC, 2628
    AC, 2628 MV errors in P frame

    2018-08-14T12:27:10.874Z [aac @ 0x65d2f00] channel element 2.11 is not
    allocated

    2018-08-14T12:27:10.874Z Error while decoding stream #0:1 : Invalid
    data found when processing input

    2018-08-14T12:27:10.874Z [h264 @ 0x67e86c0] Invalid NAL unit size
    (108085662 > 1649).

    2018-08-14T12:27:10.874Z [h264 @ 0x67e86c0] Error splitting the input
    into NAL units.

    2018-08-14T12:27:10.874Z [aac @ 0x65d2f00] channel element 2.0 is not
    allocated

    2018-08-14T12:27:10.874Z Error while decoding stream #0:1 : Invalid
    data found when processing input

    2018-08-14T12:27:10.874Z [h264 @ 0x68189c0] Invalid NAL unit size
    (71106974 > 1085).

    2018-08-14T12:27:10.874Z [h264 @ 0x68189c0] Error splitting the input
    into NAL units.

    2018-08-14T12:27:10.874Z [aac @ 0x65d2f00] Pulse tool not allowed in
    eight short sequence.

    This log is generated when trying to perform an HLS transcoding on this file : https://www.datafilehost.com/d/999a4492

    Note that the issue is not related to that file alone nor is it related to HLS, its general and happen on all videos and any ffmpeg command that tries to seek the stream, even tried extracting a single frame from a video using the simplest form possible for example : ffmpeg -ss 00:00:02 -I file.mp4 -vframes 1 -y output.jpg also fails with the same errors in the log file.

    Not sure how to debug this further. Tried enabling debug logs with ‘-loglevel debug’ but did not give me any extra info. Any help or suggestions

  • ffmpeg : video codec ansi not compatible with flv

    11 septembre 2018, par diatomym

    lets say i have 10 video files, encoded with the following command in ffmpeg

    ffmpeg -i input.mp4 -c:v libx264 -preset medium -maxrate 6000k -bufsize 6000k -vf "scale=1280:-1,format=yuv420p" -g 50 -c:a aac -b:a 128k -ac 2 -ar 44100 file.flv

    now that all files match in codec, what i want to do is stream all those files via RTMP. for that, I’ll need to create a concat list. i also want the stream to infinitely repeat those 10 files. to do all these things, I use this command :

    ffmpeg -threads 2 -re -fflags +genpts -stream_loop -1 -i mylist.txt -c copy -f flv rtmp://link.to/RTMP

    when doing that, I get the following error output :

    ffmpeg -threads 2 -re -fflags +genpts -stream_loop -1 -i mylist.txt -c copy -f flv rtmp://link.to/RTMP
    ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    Input #0, tty, from 'mylist.txt':
     Duration: 00:00:00.24, bitrate: 40 kb/s
       Stream #0:0: Video: ansi, pal8, 640x400, 25 fps, 25 tbr, 25 tbn, 25 tbc
    [flv @ 0x560ec7662920] ***Video codec ansi not compatible with flv
    Could not write header for output file #0 (incorrect codec parameters ?): Function not implemented***
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)

    ffmpeg is giving me the error

    Video codec ansi not compatible with flv
    Could not write header for output file #0 (incorrect codec parameters ?): Function not implemented

    what am i doing wrong ? thanks for the help.

  • Invalid data found in the last hls segment after transcoding

    28 février 2024, par GalaDOS

    When I use ffmpeg to transcode some pure audio flv files to hls segments, the last .ts segment contains some decoding errors. It seems that it happens when the last segment's duration is short enough (about 1.5 second).

    



    Here is my transcode command :

    



    ffmpeg -i 111.flv -c:a aac -b:a 128k -f hls -hls_time 10.00 -hls_list_size 9999 tmp.m3u8


    



    And output :

    



    ffmpeg version n4.0.1-5-gb5106c5 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
  configuration: --prefix=/home/zx/ffmpeg_build --extra-cflags=-I/home/zx/ffmpeg_build/include --extra-ldflags='-L/home/zx/ffmpeg_build/lib -ldl' --bindir=/home/zx/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-version3 --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libspeex --enable-libvpx --enable-libx264 --disable-shared --enable-static --disable-debug
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
Input #0, flv, from '111.flv':
  Metadata:
    major_brand     : M4A 
    minor_version   : 512
    compatible_brands: isomiso2
    date            : 2018-05-31 01:31
    encoder         : Lavf57.25.100
  Duration: 00:12:11.40, start: 0.000000, bitrate: 135 kb/s
    Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[hls @ 0x25d4280] Opening 'tmp0.ts' for writing
[mpegts @ 0x26feb80] frame size not set
Output #0, hls, to 'tmp.m3u8':
  Metadata:
    major_brand     : M4A 
    minor_version   : 512
    compatible_brands: isomiso2
    date            : 2018-05-31 01:31
    encoder         : Lavf58.12.100
    Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc58.18.100 aac
[hls @ 0x25d4280] Opening 'tmp1.ts' for writing
[hls @ 0x25d4280] Opening 'tmp.m3u8.tmp' for writing
[hls @ 0x25d4280] Opening 'tmp2.ts' for writing
[hls @ 0x25d4280] Opening 'tmp.m3u8.tmp' for writing
[hls @ 0x25d4280] Opening 'tmp3.ts' for writing
[hls @ 0x25d4280] Opening 'tmp.m3u8.tmp' for writing
[hls @ 0x25d4280] Opening 'tmp4.ts' for writing
......
[hls @ 0x25d4280] Opening 'tmp71.ts' for writing
[hls @ 0x25d4280] Opening 'tmp.m3u8.tmp' for writing
[hls @ 0x25d4280] Opening 'tmp72.ts' for writingx    
[hls @ 0x25d4280] Opening 'tmp.m3u8.tmp' for writing
[hls @ 0x25d4280] Opening 'tmp73.ts' for writing
[hls @ 0x25d4280] Opening 'tmp.m3u8.tmp' for writing
[hls @ 0x25d4280] Opening 'tmp.m3u8.tmp' for writing
size=N/A time=00:12:11.39 bitrate=N/A speed=84.7x    
video:0kB audio:11421kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[aac @ 0x25a0580] Qavg: 567.976


    



    After transcoding, the duration of the last segment in m3u8 file is 1.39 second :

    



    ....
#EXTINF:9.984000,
tmp71.ts
#EXTINF:10.005333,
tmp72.ts
#EXTINF:1.386667,
tmp73.ts
#EXT-X-ENDLIST


    



    But when I use ffprobe to parse the last segment, I got an error :

    



    ffprobe -i tmp73.ts 
ffprobe version n4.0.1-5-gb5106c5 Copyright (c) 2007-2018 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
  configuration: --prefix=/home/zx/ffmpeg_build --extra-cflags=-I/home/zx/ffmpeg_build/include --extra-ldflags='-L/home/zx/ffmpeg_build/lib -ldl' --bindir=/home/zx/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-version3 --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libspeex --enable-libvpx --enable-libx264 --disable-shared --enable-static --disable-debug
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100
tmp73.ts: Invalid data found when processing input


    



    The input flv :

    



    http://45.76.56.248/hls_transcode_fail.flv
md5sum: 4627bbb27bcb22c143ad4dfa47359650


    



    Since my statistic module relies on the output of ffprobe, this exception will cause the entire transcoding task to fail. My temporary solution is to skip the last segment which is too short in the statistics phase. But I need a more reasonable and robust way to fix or bypass this issue. Any suggestion will be appreciated.