Recherche avancée

Médias (39)

Mot : - Tags -/audio

Autres articles (65)

Sur d’autres sites (13422)

  • AWS Lambda execution time for FFMPEG transcoding

    4 janvier 2023, par FlamingMoe

    I'm using AWS Lambda for converting files from WEBM to MP4

    


    I'm using ffmpeg version 4.3.1-static https://johnvansickle.com/ffmpeg/ (I have done the following tests also with the ffmpeg in serverless AWS ffmpeg layer (that includes de 4.1.3), but results are even worse (about 25% slower)

    


    I'm using Node 10x as container.

    


    WEBM size   Time to convert.  Memory Lambda.  Memory used (as shown in log)

80Mb             ~44s              3008            410
40Mb             ~44s              3008            375

80Mb             ~70s              1024            321
40Mb             ~70s              1024            279


    


    All videos are 80s length. So as far as I can see, it does not matter the size of the WEBM, if the length of the video is the same, it takes the same to convert. So ffmpeg takes more time if the video length is higher, not if the file size is higher ... curious ;-)

    


    But in the other hand, I'm confused with Lambda memory. I know memory and CPU comes together in Lambda ... the more memory you choose, the more CPU is assigned.

    


    But...

    


      

    1. Why ffmpeg just take about 300/400Mb if it has more to run ?
    2. 


    3. How can I tell ffmpeg to use more memory ?
    4. 


    5. Is there any option to accelerate the process in Lambda ?
    6. 


    


    Btw, In all tests, all ffmpeg are the same, and

    


    cpu-used paramenter)

    


      

    • I added to ffmpeg parameters cpu-used=100, and it does not matter at all if I put cpu-used=5 ... times are the same, so I guess that parameter is useless (i don't know why)
    • 


    


    threads parameter)

    


      

    • Also I did some tests with "threads" parameters, but it's useless also.
    • 


    


    I know it's not a good comparison, but same files takes about 5 seconds to be converted in a simple dedicated server (8 vCores and 8GB RAM in OVH Centos VPS).

    


    Btw, Amazon Elastic Transcoder is not an option :
a) it's extremely more expensive
b) it has just his profiles to convert, and my ffmpeg commands are very complex (watermarks, effects, etc ...)

    


  • ffmpeg UDP stream error (subtitles)

    9 septembre 2020, par Peca

    I have HTTP stream which I like to convert to UDP :

    



    http://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:


    



    The Video, Audio and Subtitle work perfectly If I try to open this stream in VLC n Ubuntu.
so far, so good

    



    Here is otput of FFPROBE

    



        ffprobe -i http://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:
ffprobe version git-2017-01-22-f1214ad Copyright (c) 2007-2017 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
  configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab --enable-libwavpack --enable-nvenc
  libavutil      55. 44.100 / 55. 44.100
  libavcodec     57. 75.100 / 57. 75.100
  libavformat    57. 63.100 / 57. 63.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 69.100 /  6. 69.100
  libavresample   3.  2.  0 /  3.  2.  0
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
[mpeg2video @ 0xa56fde0] Invalid frame dimensions 0x0.
    Last message repeated 2 times
Input #0, mpegts, from 'ht tp://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:':                                                                                                         
  Duration: N/A, start: 35782.514200, bitrate: N/A                                                                                                                                         
  Program 501                                                                                                                                                                             
  Program 502                                                                                                                                                                             
  Program 503                                                                                                                                                                             
  Program 504                                                                                                                                                                             
    Stream #0:0[0x13b1]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc                           
    Stream #0:1[0x13b2]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s                                                                                             
    Stream #0:2[0x1541](srp): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                               
    Stream #0:3[0x1542](slv): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                               
    Stream #0:4[0x1543](hrv): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                               
    Stream #0:5[0x1544](cze): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                               
    Stream #0:6[0x1545](hun): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                               
    Stream #0:7[0x1546](ron): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                               
    Stream #0:8[0x1547](alb): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                               
    Stream #0:9[0x1548](bul): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                               
    Stream #0:10[0x13b9](eng): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)                                                                                                             
  Program 505                                                                                                                                                                             
  Program 506
  Program 507
  Program 508
  Program 509
  Program 510
  Program 511
  Program 515
  Program 516
  Program 517
  Program 518
  Program 519
  Program 520
  Program 521
Unsupported codec with id 94215 for input stream 10


    



    So I decide to use FFMPEG to stream to UDP, and filter out unwanted SUB's

    



    Here is FFMPEG cmd

    



    ffmpeg -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2048 \
    -i "http://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:" \
    -map 0:0 -vcodec copy \
    -map 0:1 -acodec copy \
    -map 0:2 -map 0:6 -scodec copy \
    -f mpegts udp://239.0.10.3:40000?pkt_size=1316


    



    And the output is :

    



        Output #0, mpegts, to 'udp://239.0.10.3:40000?pkt_size=1316':
  Metadata:
    encoder         : Lavf57.63.100
    Stream #0:0: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 90k tbc
    Stream #0:1: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
    Stream #0:2(srp): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream #0:3(hun): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (copy)
  Stream #0:6 -> #0:3 (copy)


    



    And the resulting stream is DISASTER ... audio is choppy, video fall apart etc etc

    



    If I try same thing WITHOUT sub's (map 2 and 6) the video and audio is crystal clear and stream work well

    



    But I need this two sub's.

    



    To narrow down the problem, if I try to capture incoming stream into file :

    



    ffmpeg -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2048 \
-i "http://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:" \
-map 0:0 -map 0:1 -map 0:2 -map 0:6 \
-codec copy \
-y -f mpegts /tmp/tst.ts


    



    The resulting file is playable, sound OK, video OK, subtitles OK.

    



    Looks like problem is with OUTPUT to UDP ???

    



    Any solution for this ?

    


  • ffmpeg UDP stream error (subtitles)

    18 février 2017, par Peca

    I have HTTP stream which I like to convert to UDP :

    http://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:

    The Video, Audio and Subtitle work perfectly If I try to open this stream in VLC n Ubuntu.
    so far, so good

    Here is otput of FFPROBE

       ffprobe -i http://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:
    ffprobe version git-2017-01-22-f1214ad Copyright (c) 2007-2017 the FFmpeg developers
     built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
     configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab --enable-libwavpack --enable-nvenc
     libavutil      55. 44.100 / 55. 44.100
     libavcodec     57. 75.100 / 57. 75.100
     libavformat    57. 63.100 / 57. 63.100
     libavdevice    57.  2.100 / 57.  2.100
     libavfilter     6. 69.100 /  6. 69.100
     libavresample   3.  2.  0 /  3.  2.  0
     libswscale      4.  3.101 /  4.  3.101
     libswresample   2.  4.100 /  2.  4.100
     libpostproc    54.  2.100 / 54.  2.100
    [mpeg2video @ 0xa56fde0] Invalid frame dimensions 0x0.
       Last message repeated 2 times
    Input #0, mpegts, from 'ht tp://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:':                                                                                                        
     Duration: N/A, start: 35782.514200, bitrate: N/A                                                                                                                                        
     Program 501                                                                                                                                                                            
     Program 502                                                                                                                                                                            
     Program 503                                                                                                                                                                            
     Program 504                                                                                                                                                                            
       Stream #0:0[0x13b1]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc                          
       Stream #0:1[0x13b2]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s                                                                                            
       Stream #0:2[0x1541](srp): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                              
       Stream #0:3[0x1542](slv): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                              
       Stream #0:4[0x1543](hrv): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                              
       Stream #0:5[0x1544](cze): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                              
       Stream #0:6[0x1545](hun): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                              
       Stream #0:7[0x1546](ron): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                              
       Stream #0:8[0x1547](alb): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                              
       Stream #0:9[0x1548](bul): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)                                                                                                              
       Stream #0:10[0x13b9](eng): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)                                                                                                            
     Program 505                                                                                                                                                                            
     Program 506
     Program 507
     Program 508
     Program 509
     Program 510
     Program 511
     Program 515
     Program 516
     Program 517
     Program 518
     Program 519
     Program 520
     Program 521
    Unsupported codec with id 94215 for input stream 10

    So I decide to use FFMPEG to stream to UDP, and filter out unwanted SUB’s

    Here is FFMPEG cmd

    ffmpeg -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2048 \
       -i "http://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:" \
       -map 0:0 -vcodec copy \
       -map 0:1 -acodec copy \
       -map 0:2 -map 0:6 -scodec copy \
       -f mpegts udp://239.0.10.3:40000?pkt_size=1316

    And the output is :

       Output #0, mpegts, to 'udp://239.0.10.3:40000?pkt_size=1316':
     Metadata:
       encoder         : Lavf57.63.100
       Stream #0:0: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 90k tbc
       Stream #0:1: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 256 kb/s
       Stream #0:2(srp): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
       Stream #0:3(hun): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #0:1 -> #0:1 (copy)
     Stream #0:2 -> #0:2 (copy)
     Stream #0:6 -> #0:3 (copy)

    And the resulting stream is DISASTER ... audio is choppy, video fall apart etc etc

    If I try same thing WITHOUT sub’s (map 2 and 6) the video and audio is crystal clear and stream work well

    But I need this two sub’s.

    To narrow down the problem, if I try to capture incoming stream into file :

    ffmpeg -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2048 \
    -i "http://192.168.1.44:8001/1:0:1:1F8:1B:2C0:E080000:0:0:0:" \
    -map 0:0 -map 0:1 -map 0:2 -map 0:6 \
    -codec copy \
    -y -f mpegts /tmp/tst.ts

    The resulting file is playable, sound OK, video OK, subtitles OK.

    Looks like problem is with OUTPUT to UDP ???

    Any solution for this ?