Recherche avancée

Médias (2)

Mot : - Tags -/map

Autres articles (56)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (8888)

  • How can I increase the performance of this video watermarking call which seems to be only using 6% of my system's CPU ? Currently using ffmpeg

    24 août 2023, par Codemonkey

    I have a php script to add a watermark to an uploaded video, using ffmpeg

    


    shell_exec("ffmpeg -y -i input.mp4 -i watermark.png -filter_complex $filter output.mp4")


    


    The video is 36 seconds long, 33MB and 1080x1920, 24fps. The output video comes in at 8MB, scaled down to 540x960 with a PNG overlaid as a watermark.

    


    The script takes about 3 seconds, averaging 320fps or so. For a one-off this would be ok, but I'm going to be processing hundreds/thousands of these at a time.

    


    I have 128GB of ram and an EPYC 7502p (32cores/64threads), and both input and output files are on NVMe drives.

    


    If I monitor top showing all my cores/threads in another window, with refresh delay set to a variety of things from 0.1 to 2 seconds, I'd guesstimate that this hits about 1/4 of my available threads, at about 25% utilisation each.

    


    So it kind of feels like I COULD see a 16x speed increase if it hit all of them at 100%. That actually wouldn't be ideal, locking up the server of course, but when my CPU is sat at 99% idle 99% of the time, I feel it could do better - it'd be nice to see it hitting at least half the cores or utilising at least 50% of them when it does...

    


    So, is there anything I can change with ffmpeg's config/build or the way I call it ? If this is as good as ffmpeg can do, are there better tools for the job ?

    


    Thank you

    



    


    EDIT :

    


    A few things I've learnt since posting :

    


      

    • -c:v libx264 -preset ultrafast - marginal help
    • 


    • nice -n -10 - marginal help (changing to -20 is makes negligible difference)
    • 


    • -c:a copy - significant help, which I found surprising
    • 


    


    FPS up from 320 to 540 using those 3 combined. I still feel there should be significantly more gains somewhere though...

    



    


    Here's the output from the original script, if it helps :

    


    ffmpeg version 4.2.9 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 8 (GCC)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' --extra-cflags=' ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-libsrt --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-libzvbi --enable-avfilter --enable-avresample --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-libmfx --enable-runtime-cpudetect
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : M4V
    minor_version   : 1
    compatible_brands: isomavc1mp42
    creation_time   : 2023-07-03T14:55:37.000000Z
  Duration: 00:00:36.50, start: 0.000000, bitrate: 7315 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/unknown), 1080x1920 [SAR 1:1 DAR 9:16], 7213 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
    Metadata:
      creation_time   : 2023-07-03T14:55:37.000000Z
      handler_name    : ETI ISO Video Media Handler
      encoder         : Elemental H.264
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s (default)
    Metadata:
      creation_time   : 2023-07-03T14:55:37.000000Z
      handler_name    : ETI ISO Audio Media Handler
Input #1, png_pipe, from 'watermark.png':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Video: png, rgba(pc), 1232x804 [SAR 11811:11811 DAR 308:201], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 (h264) -> scale (graph 0)
  Stream #1:0 (png) -> scale (graph 0)
  overlay (graph 0) -> Stream #0:0 (libx264)
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x56510d488e00] using SAR=1/1
[libx264 @ 0x56510d488e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x56510d488e00] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x56510d488e00] 264 - core 157 r2980 34c06d1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=30 lookahead_threads=5 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
  Metadata:
    major_brand     : M4V
    minor_version   : 1
    compatible_brands: isomavc1mp42
    encoder         : Lavf58.29.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 540x960 [SAR 1:1 DAR 9:16], q=-1--1, 24 fps, 12288 tbn, 24 tbc (default)
    Metadata:
      encoder         : Lavc58.54.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2023-07-03T14:55:37.000000Z
      handler_name    : ETI ISO Audio Media Handler
      encoder         : Lavc58.54.100 aac
frame=  876 fps=324 q=-1.0 Lsize=    7768kB time=00:00:36.45 bitrate=1745.5kbits/s speed=13.5x
video:7177kB audio:566kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.336181%
[libx264 @ 0x56510d488e00] frame I:9     Avg QP:21.46  size: 37765
[libx264 @ 0x56510d488e00] frame P:237   Avg QP:23.78  size: 17862
[libx264 @ 0x56510d488e00] frame B:630   Avg QP:28.03  size:  4405
[libx264 @ 0x56510d488e00] consecutive B-frames:  2.9%  2.5%  3.8% 90.9%
[libx264 @ 0x56510d488e00] mb I  I16..4: 13.6% 65.9% 20.5%
[libx264 @ 0x56510d488e00] mb P  I16..4:  5.2% 16.6%  4.1%  P16..4: 32.8% 18.0% 12.5%  0.0%  0.0%    skip:10.8%
[libx264 @ 0x56510d488e00] mb B  I16..4:  1.1%  2.7%  0.2%  B16..8: 35.3%  7.2%  2.5%  direct: 3.3%  skip:47.7%  L0:37.0% L1:52.2% BI:10.8%
[libx264 @ 0x56510d488e00] 8x8 transform intra:65.0% inter:71.5%
[libx264 @ 0x56510d488e00] coded y,uvDC,uvAC intra: 54.7% 62.1% 11.5% inter: 17.9% 12.9% 0.5%
[libx264 @ 0x56510d488e00] i16 v,h,dc,p: 16% 28%  8% 47%
[libx264 @ 0x56510d488e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 23% 18%  6%  6%  7%  7%  7%  7%
[libx264 @ 0x56510d488e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 16% 11%  7%  9% 10%  8%  8%  8%
[libx264 @ 0x56510d488e00] i8c dc,h,v,p: 55% 20% 20%  5%
[libx264 @ 0x56510d488e00] Weighted P-Frames: Y:5.5% UV:3.4%
[libx264 @ 0x56510d488e00] ref P L0: 65.0% 18.8% 13.0%  3.0%  0.2%
[libx264 @ 0x56510d488e00] ref B L0: 95.0%  4.0%  1.1%
[libx264 @ 0x56510d488e00] ref B L1: 98.2%  1.8%
[libx264 @ 0x56510d488e00] kb/s:1610.57
[aac @ 0x56510d4865c0] Qavg: 22331.562


    


  • python subprocess ffmpeg return code = 69

    13 juin 2023, par Tim Chen

    I try to call ffmpeg through the subprocess.run(['ffmpeg', '-i', file_name, output_file_name], capture_output=True, text=True) command in python to convert the audio file incoming from the front end to wav format file. The backend code is as follows, using python+fastapi :

    


    @app.post("/api/upload/convert")
async def convert_upload_file(request: Request, file: UploadFile = File(...)):
    token = uuid.uuid4().hex
    tmpFileName = os.path.join(os.path.dirname(__file__), token)
    with open(tmpFileName, "wb") as buffer:
        buffer.write(await file.read())
    await file.seek(0)
    output_path = tmpFileName + '-output.wav'
    command = ['ffmpeg', '-i', tmpFileName, output_path]
    result = subprocess.run(command, capture_output=True, text=True)


    


    This code usually works, but there are some scenarios where it doesn't work. The audio file is recorded by js code (specifically navigator.mediaDevices.getUserMedia({audio: true})).
The code of the audio recorded in windows chrome can run normally and get the converted wav file, but the audio recorded from ios15 safari for more than 3 seconds cannot be converted, prompting returncode=69. The error message is as follows :

    


    CompletedProcess(args=['ffmpeg', '-i', '5cfb52c503a646bda0f422b517c8014a', '5cfb52c503a646bda0f422b517c8014a-output.wav'], returncode=69, stdout='', stderr="
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
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '5cfb52c503a646bda0f422b517c8014a':
  Metadata:
    major_brand     : iso5
    minor_version   : 1
    compatible_brands: isomiso5hlsf
    creation_time   : 2023-06-11T16:36:53.000000Z
  Duration: 00:00:07.06, start: 0.000000, bitrate: 187 kb/s
  Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 184 kb/s (default)
    Metadata:
      creation_time   : 2023-06-11T16:36:53.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (aac (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to '5cfb52c503a646bda0f422b517c8014a-output.wav':
  Metadata:
    major_brand     : iso5
    minor_version   : 1
    compatible_brands: isomiso5hlsf
    ISFT            : Lavf58.76.100
  Stream #0:0(und): Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, mono, s16, 768 kb/s (default)
    Metadata:
      creation_time   : 2023-06-11T16:36:53.000000Z
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
      encoder         : Lavc58.134.100 pcm_s16le
size=       2kB time=00:00:00.00 bitrate=N/A speed=N/A    
[aac @ 0x55f1f8f19fc0] Sample rate index in program config element does not match the sample rate index configured by the container.
[aac @ 0x55f1f8f19fc0] Too large remapped id is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[aac @ 0x55f1f8f19fc0] If you want to help, upload a sample of this file to https://streams.videolan.org/upload/ and contact the ffmpeg-devel mailing list. (ffmpeg-devel@ffmpeg.org)
Error while decoding stream #0:0: Not yet implemented in FFmpeg, patches welcome
[aac @ 0x55f1f8f19fc0] Multiple frames in a packet.
[aac @ 0x55f1f8f19fc0] Reserved bit set.
[aac @ 0x55f1f8f19fc0] Number of bands (18) exceeds limit (13).
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 0x55f1f8f19fc0] Reserved bit set.
[aac @ 0x55f1f8f19fc0] Prediction is not allowed in AAC-LC.
Error while decoding stream #0:0: Invalid data found when processing input
[aac @ 0x55f1f8f19fc0] Reserved bit set.


    


    For the abnormal code, I tried to execute ffmpeg -i input output.wav after fastapi handle request on the command line and subprocess.run(['ffmpeg', '-i', file_name, output_path], capture_output =True, text=True), all succeeded, which means that the final file must be normal, otherwise the subsequent verification work will get the same error.

    


    This confuses me, is there some information I'm missing ?

    


  • ffmpeg unable to convert vhs-captured .ts files [closed]

    4 avril, par fredko

    I'm digitizing vhs tapes with a Hauppauge Colossus capture card and Mediaportal on windows 7. They're captured as .ts files and the .ts files play well, with no sign of corruption.

    


    But I'd like to convert them to .mkv (losslessly from the .ts), and ffmpeg (version 2023-08-28-git-b5273c619d-essentials_build-www.gyan.dev) fails at this. I use

    


    ffmpeg.exe -i test.ts -c copy test.mkv


    


    and get these errors repeated many times

    


    [mpegts @ 00000000003d6d40] Packet corrupt (stream = 0, dts = 46105).
[mpegts @ 00000000003d6d40] Packet corrupt (stream = 0, dts = 49107).
[h264 @ 00000000003fc580] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 00000000003fc580] decode_slice_header error
[h264 @ 00000000003fc580] no frame!
...etc...
[in#0/mpegts @ 00000000003d6b80] corrupt input packet in stream 0
[mpegts @ 00000000003d6d40] Packet corrupt (stream = 0, dts = 247305).
...etc...


    


    The resulting mkv file is much smaller than the .ts, and displays solid black in mpc-hc. Ffprobe gives the same errors and ends with

    


    Input #0, mpegts, from 'test.ts':
  Duration: 00:24:26.80, start: 0.099956, bitrate: 4486 kb/s
  Program 137 
  Stream #0:0[0x30]: Video: h264 (Main) (HDMV / 0x564D4448), yuv420p(top first),
 720x480 [SAR 10:11 DAR 15:11], 29.97 fps, 29.97 tbr, 90k tbn
  Stream #0:1[0x40]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo,
 fltp, 188 kb/s


    


    Ffmpeg seems to be complaining about corruption, though again the .ts files play fine. Is there some way to use ffmpeg to convert these files to mkv ? Or is the problem with the capture setup ?