Recherche avancée

Médias (2)

Mot : - Tags -/documentation

Autres articles (53)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • 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

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (10353)

  • Error adding text on video using ffmpeg

    7 mars 2018, par robert tamunoemi

    Am trying to add text on video using ffmpeg. Everything works well if there is no spacing in the words. Here is my code

    $text = "Robert Tamunoemi";
    $cmd = 'ffmpeg -i '.$videoPath.'  -vcodec libx264 -f mp4 -vf drawtext="fontfile=fonts/futura-normal.ttf:text="'.$text.'":fontcolor=black@1.0:fontsize=14:x=00: y=40" -preset medium  videos/birds.mp4';

    shell_exec($cmd.' 2> log.txt');

    Here is the output from ffmpeg log

    ffmpeg version N-89674-g57d0c24132 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 7.2.0 (GCC)
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-amf --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --enable-dxva2 --enable-avisynth --enable-libmfx
     libavutil      56.  7.100 / 56.  7.100
     libavcodec     58.  9.100 / 58.  9.100
     libavformat    58.  3.100 / 58.  3.100
     libavdevice    58.  0.100 / 58.  0.100
     libavfilter     7.  8.100 /  7.  8.100
     libswscale      5.  0.101 /  5.  0.101
     libswresample   3.  0.101 /  3.  0.101
     libpostproc    55.  0.100 / 55.  0.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'videos/pest11.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.3.100
     Duration: 00:00:18.20, start: 0.000000, bitrate: 223 kb/s
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x584 [SAR 1:1 DAR 160:73], 83 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 132 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Tamunoemi:fontcolor=black@1.0:fontsize=14:x=00: y=40: Protocol not found
  • ffmpeg rtsp record problems [closed]

    3 mai 2023, par user429643

    I have 3 ip cameras from which I take rtsp stream and record mp4 files via ffmpeg. Previously, everything worked well, but some time ago, the recording from second camera ends after a some period of time (before it should be ended).
Program code :

    


    if [ "$1" = "1" ]; then
    ffmpeg -rtsp_transport tcp -use_wallclock_as_timestamps 1 -fflags +genpts -fflags -discardcorrupt -i rtsp://$CAMLogin@$CAM1IP:$RTSPport/Streaming/Channels/101 -r 20 -vcodec copy -an -t $RECtime -vsync vfr $FULLpath/1.mp4 -report null >/dev/null 2>$FULLpath/cam01.log &
    ffmpeg -i rtsp://$CAMLogin@$CAM1IP:$RTSPport/Streaming/Channels/101 -t 1 -vframes 1 -s 1280x720 -f image2 $FULLpath/1.jpg null >/dev/null 2>$FULLpath/cam_jpg01.log &
fi

if [ "$2" = "1" ]; then
    ffmpeg -rtsp_transport tcp -use_wallclock_as_timestamps 1 -fflags +genpts -fflags -discardcorrupt -i rtsp://$CAMLogin@$CAM2IP:$RTSPport/cam/realmonitor?channel=1&subtype=0 -r 20 -vcodec copy -an -t $RECtime -vsync vfr $FULLpath/2.mp4 -report null >/dev/null 2>$FULLpath/cam02.log &
    ffmpeg -i $CENTRAL -t 1 -vframes 1 -s 1280x720 -f image2 $FULLpath/2.jpg null >/dev/null 2>$FULLpath/cam_jpg02.log &
fi

if [ "$3" = "1" ]; then
 ffmpeg -rtsp_transport tcp -use_wallclock_as_timestamps 1 -fflags +genpts -fflags -discardcorrupt -i rtsp://$CAMLogin@$CAM3IP:$RTSPport/Streaming/Channels/101 -r 20 -vcodec copy -an -t $RECtime -vsync vfr $FULLpath/3.mp4 -report null >/dev/null 2>$FULLpath/cam03.log &
 ffmpeg -i rtsp://$CAMLogin@$CAM3IP:$RTSPport/Streaming/Channels/101 -t 1 -vframes 1 -s 1280x720 -f image2 $FULLpath/3.jpg null >/dev/null 2>$FULLpath/cam_jpg03.log &


    


    If I set a certain recording time, then the problem occurs only from the second camera.

    


    FFMPEG log for first camera :

    


    ffmpeg started on 2023-05-03 at 12:04:01
Report written to "ffmpeg-20230503-120401.log"
ffmpeg version 2.8.14-0ubuntu0.16.04.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.9) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --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-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --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-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, rtsp, from 'rtsp://username:password@192.168.8.98:554/Streaming/Channels/101':
  Metadata:
    title           : Media Presentation
  Duration: N/A, start: 1683104641.578533, bitrate: N/A
    Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709), 3840x2160 [SAR 1:1 DAR 16:9], 20 fps, 20 tbr, 90k tbn, 40 tbc
[mp4 @ 0x23f8d80] Codec for stream 0 does not use global headers but container format requires global headers
Output #0, mp4, to '/var/www/view/dist/videos/archive/2023-05-03/c24706a011ae90262875803ad73b8a2b/1.mp4':
  Metadata:
    title           : Media Presentation
    encoder         : Lavf56.40.101
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuvj420p, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 20 fps, 20 tbr, 10240 tbn, 20 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0x23f8d80] Non-monotonous DTS in output stream 0:0; previous: 6516, current: 6516; changing to 6517. This may result in incorrect timestamps in the output file.
[mp4 @ 0x23f8d80] Non-monotonous DTS in output stream 0:0; previous: 6523, current: 6523; changing to 6524. This may result in incorrect timestamps in the output file.
frame=   34 fps=0.0 q=-1.0 size=    1922kB time=00:00:01.52 bitrate=10321.7kbits/s    
frame=   45 fps= 41 q=-1.0 size=    2019kB time=00:00:02.07 bitrate=7978.7kbits/s
....
....
....
....
....
frame=144051 fps= 20 q=-1.0 size= 3530396kB time=02:00:01.84 bitrate=4015.8kbits/s    
frame=144055 fps= 20 q=-1.0 Lsize= 3532194kB time=02:00:02.04 bitrate=4017.7kbits/s    
video:3530424kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.050154%   


    


    FFMPEG log for second camera :

    


    ffmpeg started on 2023-05-03 at 12:04:01
Report written to "ffmpeg-20230503-120401.log"
ffmpeg version 2.8.14-0ubuntu0.16.04.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.9) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --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-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --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-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
[rtsp @ 0x134adc0] DTS discontinuity in stream 1: packet 3 with DTS 80789022795410, packet 4 with DTS 80789022798792
[rtsp @ 0x134adc0] DTS discontinuity in stream 1: packet 7 with DTS 80789022798811, packet 8 with DTS 80789022809865
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://username:password@192.168.8.22:554/cam/realmonitor?channel=1&subtype=0':
  Metadata:
    title           : Media Server
  Duration: N/A, start: 1683104641.570750, bitrate: N/A
    Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709), 4096x1800, 90k tbr, 90k tbn, 180k tbc
    Stream #0:1: Audio: pcm_alaw, 48000 Hz, 1 channels, s16, 384 kb/s
[mp4 @ 0x1538e00] Codec for stream 0 does not use global headers but container format requires global headers
Output #0, mp4, to '/var/www/view/dist/videos/archive/2023-05-03/c24706a011ae90262875803ad73b8a2b/2.mp4':
  Metadata:
    title           : Media Server
    encoder         : Lavf56.40.101
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuvj420p, 4096x1800, q=2-31, 90k tbr, 10240 tbn, 20 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame=   31 fps=0.0 q=-1.0 size=    1170kB time=00:00:01.46 bitrate=6543.0kbits/s    
frame=   40 fps= 39 q=-1.0 size=    1435kB time=00:00:01.92 bitrate=6120.5kbits/s    
Invalid UE golomb code
frame=   52 fps= 34 q=-1.0 size=    2099kB time=00:00:02.50 bitrate=6864.2kbits/s    
frame=   63 fps= 31 q=-1.0 size=    2399kB time=00:00:03.06 bitrate=6411.5kbits/s    
frame=   72 fps= 28 q=-1.0 size=    2670kB time=00:00:03.52 bitrate=6210.5kbits/s    
Invalid UE golomb code
...
...
...
...
Invalid UE golomb code
frame=27243 fps= 20 q=-1.0 size= 1046397kB time=00:22:42.09 bitrate=6293.3kbits/s    
frame=27254 fps= 20 q=-1.0 size= 1046712kB time=00:22:42.64 bitrate=6292.7kbits/s    
frame=27264 fps= 20 q=-1.0 size= 1046990kB time=00:22:43.12 bitrate=6292.1kbits/s    
frame=27275 fps= 20 q=-1.0 size= 1047290kB time=00:22:43.67 bitrate=6291.4kbits/s    
Invalid UE golomb code
frame=27285 fps= 20 q=-1.0 size= 1048022kB time=00:22:44.20 bitrate=6293.3kbits/s    
frame=27292 fps= 20 q=-1.0 Lsize= 1048561kB time=00:22:44.52 bitrate=6295.1kbits/s    
video:1048224kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.032150%


    


    Initially, I thought that the error was in timestamps, so I added arguments to ffmpeg :

    


    -use_wallclock_as_timestamps 1
-fflags +genpts
-fflags -discardcorrupt
-vsync vfr

    


    But this doesnt help.

    


  • What is the proper input format for drawtext's timecode option in fluent-ffmpeg (node.js) ?

    24 janvier 2023, par Gil Dekel

    I am trying to generate short video clips from 3 images with a simple millisecond counter at the top left per user request. So far I was able to generate the clips using the videoshow npm lib, no issues here.

    



    However, when I try to add the timer via fluent-ffmpeg's drawtext filter to an already generated video, I run into the following issue.

    



    Here's what I have so far :

    



    ffmpeg('video.mp4')
    .on('error', function(err, stdout, stderr) {
      console.log("ffmpeg stdout:\n" + stdout);
      console.log("ffmpeg stderr:\n" + stderr);
    })
    .videoCodec('libx264')
    .format('mp4')
    .fps(fps)
    .complexFilter([
        {
            filter: 'drawtext',
            options: {
                fontsize: 15,
                timecode: '00\:00\:00\:00',  //<--- Issue is most likely here
                fontsize: 32,
                fontcolor: 'white',
                boxcolor: 'black',
                box: 1
            }
        }
    ]).save('out.mp4');


    



    From what I found online I am quite convinced that my problem is with the timecode input format. Here's my error log :

    



    ffmpeg stderr:
ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
  built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.2 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --disable-jack --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma --enable-nonfree
  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, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.83.100
  Duration: 00:00:01.03, start: 0.000000, bitrate: 585 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x1136 [SAR 923:924 DAR 130:231], 573 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)
    Metadata:
      handler_name    : VideoHandler
[Parsed_drawtext_0 @ 0x7f91aa700700] Both text and text file provided. Please provide only one
[AVFilterGraph @ 0x7f91aa700440] Error initializing filter 'drawtext' with args 'fontsize=32:timecode=00:00:00:00:fontcolor=white:boxcolor=black:box=1'
Error initializing complex filters.
Invalid argument


    



    Specifically this :

    



    [Parsed_drawtext_0 @ 0x7f91aa700700] Both text and text file provided. Please provide only one


    



    When I run what should be the equivalent to my code in shell, it works perfectly :

    



    ffmpeg -i video.mp4 \
       -vf drawtext="fontsize=15:timecode='00\:00\:00\:00':rate=60:fontsize=32:fontcolor='white':\
           boxcolor=0x000000AA:box=1" \
       -f mp4 out.mp4


    



    I already spent a whole day trying to find any previous solutions to this problem, or documentation online regarding the proper format of drawtext's timecode option within node.js with no luck. It seems most of the information out there is for bash/shell use. I need to do this programmatically on a server per request, and I just can't find the right example to solve this.

    



    Any help to resolve this would be appreciated.