Recherche avancée

Médias (39)

Mot : - Tags -/audio

Autres articles (108)

Sur d’autres sites (14979)

  • why FFMPEG process is slow ?

    4 septembre 2020, par puneet18

    I tried to process 4gb video using ffmpeg on server with 1 CPU & 2GB RAM but the command is hanged for 5 mins then starts and process very slowly. Following is the console output :

    


    Command

    


    ffmpeg -i input.mp4 -filter_complex '[0:v]trim=823.2:867.3,setpts=PTS-STARTPTS[v0];[0:v]trim=1074.1:1101.4,setpts=PTS-STARTPTS[v1];[0:v]trim=1142.2:1198.9,setpts=PTS-STARTPTS[v2];[0:v]trim=1227.9:1320.0,setpts=PTS-STARTPTS[v3];[0:v]trim=1887.1:1990.8,setpts=PTS-STARTPTS[v4];[0:v]trim=2008.1:2091.3,setpts=PTS-STARTPTS[v5];[0:v]trim=3090.1:3105.1,setpts=PTS-STARTPTS[v6];[0:v]trim=3185.3:3222.2,setpts=PTS-STARTPTS[v7];[0:v]trim=3306.4:3336.5,setpts=PTS-STARTPTS[v8];[0:v]trim=3426.7:3465.7,setpts=PTS-STARTPTS[v9];[0:v]trim=3548.7:3586.5,setpts=PTS-STARTPTS[v10];[v0][v1][v2][v3][v4][v5][v6][v7][v8][v9][v10]concat=n=11:v=1[out]' -map '[out]' output.mp4


    


    Output

    


    ffmpeg version 3.4.8-0ubuntu0.2 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --prefix=/usr --extra-version=0ubuntu0.2 --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, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/down-net_http20200902-1614-1x7tk8f.mp4':
  Metadata:
    major_brand     : qt  
    minor_version   : 0
    compatible_brands: qt  
    creation_time   : 2020-08-28T14:02:14.000000Z
  Duration: 01:00:18.73, start: 0.000000, bitrate: 8895 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 8871 kb/s, 15 fps, 15 tbr, 6k tbn, 12k tbc (default)
    Metadata:
      creation_time   : 2020-08-28T14:02:14.000000Z
      handler_name    : Core Media Video
Stream mapping:
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  Stream #0:0 (h264) -> trim
  concat -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
[libx264 @ 0x563bd0d2c520] using SAR=1/1
[libx264 @ 0x563bd0d2c520] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x563bd0d2c520] profile High, level 3.1
[libx264 @ 0x563bd0d2c520] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - 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=1 lookahead_threads=1 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=15 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 '/opt/app/tmp/file_1599089716.mp4':
  Metadata:
    major_brand     : qt  
    minor_version   : 0
    compatible_brands: qt  
    encoder         : Lavf57.83.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 15 fps, 15360 tbn, 15 tbc (default)
    Metadata:
      encoder         : Lavc57.107.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x 




    


    How can I improve the speed ?

    


    ==================

    


    I tried following command and getting an error :

    


    Command

    


    ffmpeg -ss 823.2 -to 867.3 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 1074.1 -to 1101.4 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 1142.2 -to 1198.9 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 1227.9 -to 1320.0 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 1887.1 -to 1990.8 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 2008.1 -to 2091.3 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 3090.1 -to 3105.1 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 3185.3 -to 3222.2 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 3306.4 -to 3336.5 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 3426.7 -to 3465.7 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -ss 3548.7 -to 3586.5 -i /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4  -filter_complex '[0:v][1:v][2:v][3:v][4:v][5:v][6:v][7:v][8:v][9:v][10:v]concat=n=11:v=1:a=0[v]' -map '[v]' /opt/app/tmp/file_1599127170.mp4


    


    Error

    


    Option to (record or transcode stop time) cannot be applied to input url /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
Error parsing options for input file /opt/app/tmp/down-net_http20200903-4776-1o4wkhk.mp4.
Error opening input files: Invalid argument


    


  • no difference between h264 and h264_cuvid

    10 juillet 2020, par Ruslan Ablyazov

    I use libav to decode an RTSP stream. I tried two code options : with auto codec selection and with hardcoded codec.

    


    pCodec = avcodec_find_decoder (pFormatCtx->streams[p_InputVideoStreamIndex]->codecpar->codec_id);&#xA;//pCodec = avcodec_find_decoder_by_name ("h264_cuvid");&#xA;&#xA;LOG (info) &lt;&lt; "Video codec name" &lt;&lt; pCodec->name &lt;&lt; ". Full name:" &lt;&lt; (pCodec->long_name? PCodec->long_name: "<null>");&#xA;</null>

    &#xA;

    The avcodec_find_decoder() function returns h264 codec. The problem is that the speed and load on the CPU when using h264 is no different from h264_cuvid. What could be the reason ? When I use h264_cuvid, the video card is loaded by 2-3% more.

    &#xA;

    Video stream : 1920x1080 25 FPS (main and high profile).&#xA;Video card : NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1).&#xA;Processor : Intel (R) Core (TM) i5-8400 CPU @ 2.80GHz.

    &#xA;

    Compilation config ffmpeg :

    &#xA;

    ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers&#xA;  built with gcc 8 (Debian 8.3.0-6)&#xA;  configuration: --enable-gpl --enable-ladspa --enable-libpulse --enable-libsoxr --enable-libspeex --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --enable -libass --enable-libfreetype --enable-libmp3lame --enable-nonfree --disable-ffplay --enable-libxvid --enable-cuda --enable-cuda-nvcc --enable-cuda-sdk --enable- cuvid --enable-nvenc --enable-nonfree --enable-libnpp --enable-shared --extra-cflags = -I/usr/local/cuda/include --extra-ldflags = -L/usr/local/cuda/lib64&#xA;

    &#xA;

  • Picking the right gpu for ffmpeg decoding/encoding with nvidia/cuda

    14 avril 2020, par Reza Mir

    I am writing code using ffmpeg/nvidia/cuda library to decode and encode some video. I am trying to pick one specific GPU for decoding/encoding among some existing GPUs installed on the system. Here is the list of existing GPUs :

    &#xA;&#xA;

     nvidia-smi &#xA;Tue Apr 14 00:14:59 2020       &#xA;&#x2B;-----------------------------------------------------------------------------&#x2B;&#xA;| NVIDIA-SMI 440.64.00    Driver Version: 440.64.00    CUDA Version: 10.2     |&#xA;|-------------------------------&#x2B;----------------------&#x2B;----------------------&#x2B;&#xA;| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |&#xA;| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |&#xA;|===============================&#x2B;======================&#x2B;======================|&#xA;|   0  GeForce RTX 208...  On   | 00000000:1A:00.0 Off |                  N/A |&#xA;| 41%   33C    P8    20W / 260W |      0MiB / 11019MiB |      0%      Default |&#xA;&#x2B;-------------------------------&#x2B;----------------------&#x2B;----------------------&#x2B;&#xA;|   1  GeForce GTX 108...  On   | 00000000:1B:00.0 Off |                  N/A |&#xA;| 41%   65C    P2   182W / 250W |   7167MiB / 11178MiB |     53%      Default |&#xA;&#x2B;-------------------------------&#x2B;----------------------&#x2B;----------------------&#x2B;&#xA;|   2  GeForce GTX 108...  On   | 00000000:1E:00.0 Off |                  N/A |&#xA;| 14%   55C    P2    61W / 250W |   1943MiB / 11178MiB |     26%      Default |&#xA;&#x2B;-------------------------------&#x2B;----------------------&#x2B;----------------------&#x2B;&#xA;|   3  Quadro P5000        On   | 00000000:3D:00.0 Off |                  Off |&#xA;| 26%   33C    P8     6W / 180W |      1MiB / 16278MiB |      0%      Default |&#xA;&#x2B;-------------------------------&#x2B;----------------------&#x2B;----------------------&#x2B;&#xA;|   4  TITAN RTX           On   | 00000000:3E:00.0 Off |                  N/A |&#xA;| 41%   38C    P0    72W / 280W |      0MiB / 24220MiB |      0%      Default |&#xA;&#x2B;-------------------------------&#x2B;----------------------&#x2B;----------------------&#x2B;&#xA;|   5  TITAN RTX           On   | 00000000:41:00.0 Off |                  N/A |&#xA;| 40%   32C    P8    14W / 280W |      0MiB / 24220MiB |      0%      Default |&#xA;&#x2B;-------------------------------&#x2B;----------------------&#x2B;----------------------&#x2B;&#xA;&#xA;

    &#xA;&#xA;

    I would like to pick GPU #3 in my code and use it for decoding. I am using h264_nvenc and h264_cuvid as encoder and decoder in my program and setting the options of decoder/encoder using the following code :

    &#xA;&#xA;

    av_opt_set(decoder_context->priv_data, "gpu", "Quadro P5000", 0);&#xA;

    &#xA;&#xA;

    But this code doesn't pick Quadro GPU for decoding/encoding. Instead, it always goes to GPU #4 in my test :

    &#xA;&#xA;

    nvidia-smi pmon | grep tx&#xA;    4      20096     C    22     3    44    16   tx            &#xA;    4      20096     C    26     4    49    17   tx            &#xA;    4      20096     C    25     4    49    17   tx     &#xA;

    &#xA;