Recherche avancée

Médias (91)

Autres articles (64)

  • Pas question de marché, de cloud etc...

    10 avril 2011

    Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
    sur le web 2.0 et dans les entreprises qui en vivent.
    Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
    Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
    le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
    Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...)

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

  • Activation de l’inscription des visiteurs

    12 avril 2011, par

    Il est également possible d’activer l’inscription des visiteurs ce qui permettra à tout un chacun d’ouvrir soit même un compte sur le canal en question dans le cadre de projets ouverts par exemple.
    Pour ce faire, il suffit d’aller dans l’espace de configuration du site en choisissant le sous menus "Gestion des utilisateurs". Le premier formulaire visible correspond à cette fonctionnalité.
    Par défaut, MediaSPIP a créé lors de son initialisation un élément de menu dans le menu du haut de la page menant (...)

Sur d’autres sites (6091)

  • Pipe opencv frames into ffmpeg

    25 juin 2023, par Dmytro Soltusyuk

    I am trying to pipe opencv frames into ffmpeg, but it does not work.

    


    After the research, I found this answer (https://stackoverflow.com/a/62807083/10676682) to work the best for me, so I have the following :

    


    def start_streaming_process(rtmp_url, width, height, fps):
    # fmt: off
    cmd = ['ffmpeg',
           '-y',
           '-f', 'rawvideo',
           '-vcodec', 'rawvideo',
           '-pix_fmt', 'bgr24',
           '-s', "{}x{}".format(width, height),
           '-r', str(fps),
           '-i', '-',
           '-c:v', 'libx264',
           '-pix_fmt', 'yuv420p',
           '-preset', 'ultrafast',
           '-f', 'flv',
           '-flvflags', 'no_duration_filesize',
           rtmp_url]
    # fmt: on

    return subprocess.Popen(cmd, stdin=subprocess.PIPE)


    


    def main():
    width, height, fps = get_video_size(SOURCE_VIDEO_PATH)
    streaming_process = start_streaming_process(
        TARGET_VIDEO_PATH,
        width,
        height,
        fps,
    )

    model = load_yolo(WEIGHTS_PATH)
    frame_iterator = read_frames(video_source=SOURCE_VIDEO_PATH)
    processed_frames_iterator = process_frames(
        model, frame_iterator, ball_target_area=400
    )

    for processed_frame in processed_frames_iterator:
        streaming_process.communicate(processed_frame.tobytes())

    streaming_process.kill()


    


    processed_frame here is an annotated OpenCV frame.

    


    However, after I do my first streaming_process.communicate call, the ffmpeg process exits with code 0 (meaning everything was ok), but it is not. I can not feed the rest of the frames into ffmpeg, because the process exited.

    


    Here are the logs :

    


    Input #0, rawvideo, from 'fd:':
  Duration: N/A, start: 0.000000, bitrate: 663552 kb/s
  Stream #0:0: Video: rawvideo (BGR[24] / 0x18524742), bgr24, 1280x720, 663552 kb/s, 30 tbr, 30 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
[libx264 @ 0x132e05570] using cpu capabilities: ARMv8 NEON
[libx264 @ 0x132e05570] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x132e05570] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - h
ttp://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=15 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 inter
laced=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=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbt
ree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://global-live.mux.com:5222/app/9428e064-e5d3-0bee-dc67-974ba53ce164':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Video: h264 ([7][0][0][0] / 0x0007), yuv420p(tv, progressive), 1280x720, q=2-31, 30 fps
, 1k tbn
    Metadata:
      encoder         : Lavc60.3.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame=    1 fps=0.0 q=29.0 Lsize=      41kB time=00:00:00.00 bitrate=N/A speed=   0x    eed=N/A    
video:40kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.678311%
[libx264 @ 0x132e05570] frame I:1     Avg QP:25.22  size: 40589
[libx264 @ 0x132e05570] mb I  I16..4: 37.7% 33.4% 28.9%
[libx264 @ 0x132e05570] 8x8 transform intra:33.4%
[libx264 @ 0x132e05570] coded y,uvDC,uvAC intra: 51.1% 53.2% 14.4%
[libx264 @ 0x132e05570] i16 v,h,dc,p: 32% 38% 20% 10%
[libx264 @ 0x132e05570] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 36% 28%  3%  2%  2%  3%  3%  6%
[libx264 @ 0x132e05570] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 37% 17%  4%  4%  4%  5%  4%  7%
[libx264 @ 0x132e05570] i8c dc,h,v,p: 46% 37% 12%  4%
[libx264 @ 0x132e05570] kb/s:9741.36


    


    That's all. Exit code 0.

    


  • ffmpeg concat with video using image background

    16 janvier 2018, par ant-C

    Ffmpeg does not concat the media files correctly using various testing. One of the videos is a .mp4 (h264 codec) video generated previously using a .mp3 and a jpeg background. I’ve tried testing with various flags, closest I’ve gotten is below for the final output.

    My main issue is the final video with the current test, the audio is about 3 seconds delayed once the two videos are stitched together.

    Here are all the files I’m using :

    Input Files :

    Output Files :

    files.txt

    file ’/tmp/new_image_video.mp4’

    file ’/tmp/main_video.mp4’

    Image Video Creation :

    ffmpeg -loop 1 -i /tmp/image.jpg -i /tmp/audio.mp3 -acodec libfdk_aac -framerate 30 -vcodec libx264 -shortest /tmp/new_image_video_raw.mp4

    Part two :

    ffmpeg -threads 0 -i /tmp/new_image_video_raw.mp4 -vf "scale=w=560:h=320:force_original_aspect_ratio=decrease, pad=560:320:(560-iw*min(560/iw\,320/ih))/2:(320-ih*min(560/iw\,320/ih))/2" -acodec libfdk_aac -af aresample=resampler=soxr -qp 20 -ar 44100 -r 30 -ab 128k -ac 1 -vcodec libx264 -max_muxing_queue_size 9999 -shortest -movflags +faststart /tmp/new_image_video.mp4 -y

    Main Video Transcode :

    ffmpeg -i /tmp/main_video_raw.mp4 -vf "scale=iw*min(560/iw\,320/ih):ih*min(560/iw\,320/ih), pad=560:320:(560-iw*min(560/iw\,320/ih))/2:(320-ih*min(560/iw\,320/ih))/2" -acodec libfdk_aac -af aresample=resampler=soxr -ar 44100 -aspect 16:9 -qp 20  -framerate 30 -ab 128k -ac 1 -vcodec libx264 -max_muxing_queue_size 9999 -movflags +faststart /tmp/main_video.mp4 -y

    Concat Video :

    ffmpeg -threads 0 -f concat -safe 0 -i /tmp/files.txt -vf "scale=iw*min(560/iw\,320/ih):ih*min(560/iw\,320/ih), pad=560:320:(560-iw*min(560/iw\,320/ih))/2:(320-ih*min(560/iw\,320/ih))/2" -preset veryslow -crf 15 -acodec libfdk_aac -af aresample=resampler=soxr -ar 44100 -aspect 16:9 -qp 20  -framerate 30 -ab 128k -ac 1 -vcodec libx264 -max_muxing_queue_size 9999 -movflags +faststart /tmp/final_output_video.mp4 -y

    Output for new_image_video.mp4

    Stream mapping:
     Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [libx264 @ 0x150ce00] using SAR=1/1
    [libx264 @ 0x150ce00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x150ce00] profile High, level 2.1
    [libx264 @ 0x150ce00] 264 - core 152 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:-3:-3 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=2.00:0.70 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-4 threads=10 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=1 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.20
    Output #0, mp4, to '/tmp/new_image_video.mp4':
     Metadata:
       encoder         : Lavf57.76.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuvj420p(pc), 560x320 [SAR 1:1 DAR 7:4], q=-1--1, 1 fps, 16384 tbn, 1 tbc
       Metadata:
         encoder         : Lavc57.102.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1: Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, s16p, 157 kb/s
       Metadata:
         encoder         : Lavc56.41
    frame=   73 fps=0.0 q=17.0 Lsize=     362kB time=00:00:16.00 bitrate= 185.3kbits/s speed=88.6x
    video:49kB audio:308kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.166542%
    [libx264 @ 0x150ce00] frame I:1     Avg QP: 4.09  size: 38729
    [libx264 @ 0x150ce00] frame P:18    Avg QP: 5.77  size:   843
    [libx264 @ 0x150ce00] frame B:54    Avg QP: 0.64  size:    49
    [libx264 @ 0x150ce00] consecutive B-frames:  1.4%  0.0%  0.0% 98.6%
    [libx264 @ 0x150ce00] mb I  I16..4: 54.6% 18.9% 26.6%
    [libx264 @ 0x150ce00] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  9.1%  0.1%  0.5%  0.0%  0.0%    skip:90.3%
    [libx264 @ 0x150ce00] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  2.6%  0.0%  0.0%  direct: 0.0%  skip:97.4%  L0:69.1% L1:30.9% BI: 0.0%
    [libx264 @ 0x150ce00] 8x8 transform intra:18.9% inter:59.9%
    [libx264 @ 0x150ce00] coded y,uvDC,uvAC intra: 44.1% 45.3% 45.0% inter: 1.4% 0.0% 0.0%
    [libx264 @ 0x150ce00] i16 v,h,dc,p: 91%  2%  6%  1%
    [libx264 @ 0x150ce00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 18% 18%  8%  5%  6%  7%  9%  7%
    [libx264 @ 0x150ce00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 16%  8%  7% 10%  9% 10%  9%  9%
    [libx264 @ 0x150ce00] i8c dc,h,v,p: 71% 12% 12%  5%
    [libx264 @ 0x150ce00] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x150ce00] ref P L0: 79.3%  0.1% 19.5%  1.1%
    [libx264 @ 0x150ce00] ref B L0: 68.3% 30.5%  1.2%
    [libx264 @ 0x150ce00] ref B L1: 98.4%  1.6%
    [libx264 @ 0x150ce00] kb/s:6.20

    Output for new_image_video.mp4 (Part 2)

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/new_image_video_raw.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.76.100
     Duration: 00:00:19.00, start: 0.000000, bitrate: 156 kb/s
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 560x320 [SAR 1:1 DAR 7:4], 21 kb/s, 1 fps, 1 tbr, 16384 tbn, 2 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, s16p, 157 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
     Stream #0:1 -> #0:1 (mp3 (native) -> aac (libfdk_aac))
    Press [q] to stop, [?] for help
    [libx264 @ 0x2175560] using SAR=1/1
    [libx264 @ 0x2175560] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x2175560] profile High, level 3.0
    [libx264 @ 0x2175560] 264 - core 152 - 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=10 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=25 scenecut=40 intra_refresh=0 rc=cqp mbtree=0 qp=20 ip_ratio=1.40 pb_ratio=1.30 aq=0
    Output #0, mp4, to '/tmp/new_image_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.76.100
       Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuvj420p(pc), 560x320 [SAR 1:1 DAR 7:4], q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
       Metadata:
         handler_name    : VideoHandler
         encoder         : Lavc57.102.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1(und): Audio: aac (libfdk_aac) (mp4a / 0x6134706D), 44100 Hz, mono, s16, 128 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
         encoder         : Lavc57.102.100 libfdk_aac
    [mp4 @ 0x2150cc0] Starting second pass: moving the moov atom to the beginning of the file drop=0 speed=31.6x
    frame=  569 fps=0.0 q=-1.0 Lsize=     351kB time=00:00:18.86 bitrate= 152.3kbits/s dup=579 drop=0 speed=32.5x
    video:81kB audio:251kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 5.851973%
    [libx264 @ 0x2175560] frame I:3     Avg QP:17.00  size: 23393
    [libx264 @ 0x2175560] frame P:143   Avg QP:20.00  size:    26
    [libx264 @ 0x2175560] frame B:423   Avg QP:21.67  size:    19
    [libx264 @ 0x2175560] consecutive B-frames:  0.9%  0.0%  0.0% 99.1%
    [libx264 @ 0x2175560] mb I  I16..4: 54.7% 26.0% 19.4%
    [libx264 @ 0x2175560] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.1%  0.0%  0.0%  0.0%  0.0%    skip:99.9%
    [libx264 @ 0x2175560] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.2%  0.0%  0.0%  direct: 0.0%  skip:99.7%  L0:23.7% L1:76.3% BI: 0.0%
    [libx264 @ 0x2175560] 8x8 transform intra:26.0% inter:14.0%
    [libx264 @ 0x2175560] coded y,uvDC,uvAC intra: 39.8% 44.1% 43.4% inter: 0.0% 0.0% 0.0%
    [libx264 @ 0x2175560] i16 v,h,dc,p: 91%  3%  5%  1%
    [libx264 @ 0x2175560] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 17% 15%  8%  6%  9%  6%  8%  8%
    [libx264 @ 0x2175560] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 17%  6%  7% 10%  9% 11% 10%  9%
    [libx264 @ 0x2175560] i8c dc,h,v,p: 71% 11% 13%  5%
    [libx264 @ 0x2175560] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x2175560] ref P L0: 95.4%  0.7%  3.9%
    [libx264 @ 0x2175560] ref B L0: 44.6% 55.4%
    [libx264 @ 0x2175560] ref B L1: 98.3%  1.7%
    [libx264 @ 0x2175560] kb/s:34.62

    Output for main_video.mp4

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/main_video_raw.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       creation_time   : 1970-01-01T00:00:00.000000Z
       encoder         : Lavf53.24.2
     Duration: 00:01:02.32, start: 0.000000, bitrate: 1347 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 959 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
       Metadata:
         creation_time   : 1970-01-01T00:00:00.000000Z
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)
       Metadata:
         creation_time   : 1970-01-01T00:00:00.000000Z
         handler_name    : SoundHandler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
     Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac))
    Press [q] to stop, [?] for help
    [libx264 @ 0x758900] using SAR=64/63
    [libx264 @ 0x758900] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x758900] profile High, level 2.1
    [libx264 @ 0x758900] 264 - core 152 - 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=10 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=25 scenecut=40 intra_refresh=0 rc=cqp mbtree=0 qp=20 ip_ratio=1.40 pb_ratio=1.30 aq=0
    Output #0, mp4, to '/tmp/main_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.76.100
       Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 560x320 [SAR 64:63 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
       Metadata:
         creation_time   : 1970-01-01T00:00:00.000000Z
         handler_name    : VideoHandler
         encoder         : Lavc57.102.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1(und): Audio: aac (libfdk_aac) (mp4a / 0x6134706D), 44100 Hz, mono, s16, 128 kb/s (default)
       Metadata:
         creation_time   : 1970-01-01T00:00:00.000000Z
         handler_name    : SoundHandler
         encoder         : Lavc57.102.100 libfdk_aac
    [mp4 @ 0x755900] Starting second pass: moving the moov atom to the beginning of the file11.1x
    frame= 1557 fps=275 q=-1.0 Lsize=    5144kB time=00:01:02.32 bitrate= 676.1kbits/s speed=  11x
    video:4119kB audio:975kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.989500%
    [libx264 @ 0x758900] frame I:13    Avg QP:17.00  size: 34937
    [libx264 @ 0x758900] frame P:657   Avg QP:20.00  size:  3546
    [libx264 @ 0x758900] frame B:887   Avg QP:21.69  size:  1615
    [libx264 @ 0x758900] consecutive B-frames: 18.9% 12.6%  8.1% 60.4%
    [libx264 @ 0x758900] mb I  I16..4: 12.5% 51.8% 35.7%
    [libx264 @ 0x758900] mb P  I16..4:  0.2%  1.9%  1.0%  P16..4: 17.9%  9.3%  8.4%  0.0%  0.0%    skip:61.3%
    [libx264 @ 0x758900] mb B  I16..4:  0.1%  0.3%  0.3%  B16..8: 18.0%  5.6%  2.4%  direct: 2.8%  skip:70.6%  L0:33.9% L1:42.5% BI:23.6%
    [libx264 @ 0x758900] 8x8 transform intra:55.4% inter:56.4%
    [libx264 @ 0x758900] coded y,uvDC,uvAC intra: 84.0% 93.3% 75.0% inter: 12.6% 14.9% 3.3%
    [libx264 @ 0x758900] i16 v,h,dc,p:  8% 38%  3% 51%
    [libx264 @ 0x758900] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 20%  8%  7%  9%  9% 10% 10% 11%
    [libx264 @ 0x758900] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 20%  9%  8% 11% 10% 10%  9%  9%
    [libx264 @ 0x758900] i8c dc,h,v,p: 41% 26% 17% 16%
    [libx264 @ 0x758900] Weighted P-Frames: Y:0.2% UV:0.0%
    [libx264 @ 0x758900] ref P L0: 72.3% 14.4%  9.7%  3.6%  0.0%
    [libx264 @ 0x758900] ref B L0: 89.9%  7.7%  2.4%
    [libx264 @ 0x758900] ref B L1: 97.1%  2.9%
    [libx264 @ 0x758900] kb/s:541.66

    Outupt for concat :

    ffmpeg version 3.3.3 Copyright (c) 2000-2017 the FFmpeg developers
     built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-18)
     configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-version3 --disable-debug --enable-shared --enable-runtime-cpudetect --enable-postproc --enable-pic --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvo-amrwbenc --enable-gray --enable-libopenjpeg --enable-libass --enable-libvidstab --enable-libsoxr --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libwebp --enable-fontconfig --enable-libspeex --enable-nonfree
     libavutil      55. 73.100 / 55. 73.100
     libavcodec     57.102.100 / 57.102.100
     libavformat    57. 76.100 / 57. 76.100
     libavdevice    57.  7.100 / 57.  7.100
     libavfilter     6. 98.100 /  6. 98.100
     libswscale      4.  7.102 /  4.  7.102
     libswresample   2.  8.100 /  2.  8.100
     libpostproc    54.  6.100 / 54.  6.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/main_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       creation_time   : 1970-01-01T00:00:00.000000Z
       encoder         : Lavf53.24.2
     Duration: 00:01:02.32, start: 0.000000, bitrate: 1347 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 959 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
       Metadata:
         creation_time   : 1970-01-01T00:00:00.000000Z
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)
       Metadata:
         creation_time   : 1970-01-01T00:00:00.000000Z
         handler_name    : SoundHandler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
     Stream #0:1 -> #0:1 (aac (native) -> aac (libfdk_aac))
    Press [q] to stop, [?] for help
    [libx264 @ 0x1563900] using SAR=64/63
    [libx264 @ 0x1563900] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x1563900] profile High, level 2.1
    [libx264 @ 0x1563900] 264 - core 152 - 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=10 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=25 scenecut=40 intra_refresh=0 rc=cqp mbtree=0 qp=20 ip_ratio=1.40 pb_ratio=1.30 aq=0
    Output #0, mp4, to '/tmp/new_image_video.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf57.76.100
       Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 560x320 [SAR 64:63 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
       Metadata:
         creation_time   : 1970-01-01T00:00:00.000000Z
         handler_name    : VideoHandler
         encoder         : Lavc57.102.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1(und): Audio: aac (libfdk_aac) (mp4a / 0x6134706D), 44100 Hz, mono, s16, 128 kb/s (default)
       Metadata:
         creation_time   : 1970-01-01T00:00:00.000000Z
         handler_name    : SoundHandler
         encoder         : Lavc57.102.100 libfdk_aac
    [mp4 @ 0x1560900] Starting second pass: moving the moov atom to the beginning of the file1.2x
    frame= 1557 fps=277 q=-1.0 Lsize=    5144kB time=00:01:02.32 bitrate= 676.1kbits/s speed=11.1x
    video:4119kB audio:975kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.989500%
    [libx264 @ 0x1563900] frame I:13    Avg QP:17.00  size: 34937
    [libx264 @ 0x1563900] frame P:657   Avg QP:20.00  size:  3546
    [libx264 @ 0x1563900] frame B:887   Avg QP:21.69  size:  1615
    [libx264 @ 0x1563900] consecutive B-frames: 18.9% 12.6%  8.1% 60.4%
    [libx264 @ 0x1563900] mb I  I16..4: 12.5% 51.8% 35.7%
    [libx264 @ 0x1563900] mb P  I16..4:  0.2%  1.9%  1.0%  P16..4: 17.9%  9.3%  8.4%  0.0%  0.0%    skip:61.3%
    [libx264 @ 0x1563900] mb B  I16..4:  0.1%  0.3%  0.3%  B16..8: 18.0%  5.6%  2.4%  direct: 2.8%  skip:70.6%  L0:33.9% L1:42.5% BI:23.6%
    [libx264 @ 0x1563900] 8x8 transform intra:55.4% inter:56.4%
    [libx264 @ 0x1563900] coded y,uvDC,uvAC intra: 84.0% 93.3% 75.0% inter: 12.6% 14.9% 3.3%
    [libx264 @ 0x1563900] i16 v,h,dc,p:  8% 38%  3% 51%
    [libx264 @ 0x1563900] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 20%  8%  7%  9%  9% 10% 10% 11%
    [libx264 @ 0x1563900] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 20%  9%  8% 11% 10% 10%  9%  9%
    [libx264 @ 0x1563900] i8c dc,h,v,p: 41% 26% 17% 16%
    [libx264 @ 0x1563900] Weighted P-Frames: Y:0.2% UV:0.0%
    [libx264 @ 0x1563900] ref P L0: 72.3% 14.4%  9.7%  3.6%  0.0%
    [libx264 @ 0x1563900] ref B L0: 89.9%  7.7%  2.4%
    [libx264 @ 0x1563900] ref B L1: 97.1%  2.9%
    [libx264 @ 0x1563900] kb/s:541.66
  • FFmpeg library (ver 5.1) multithread decode and scaler

    19 août 2022, par wolverin

    I wrote my own code that takes the video from v4l2 MJPEG and streams it to the rtsp server in H264.

    


    Everything is fine as long as the incoming and outgoing stream resolution is 640x480, but if the incoming is 1920x1080 and I do sws_scale, then decoding and scaling are very slow.

    


    If I run ffmpeg from the command line, I see swscale errors, which means that sws_getContext is called 20 times, which means a queue of 20 scaling threads is created

    


    Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, bitrate: N/A
  Stream #0:0: Video: mjpeg, none(bt470bg/unknown/unknown), 640x480, 30 fps, 30 tbr, 1000k tbn
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[swscaler @ 0x14b8160] [swscaler @ 0x14c18b0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14df9b0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14fd790] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x151b570] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x1539350] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14c18b0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14db1a0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14f8f80] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x1516d60] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x15396f0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x152d3d0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14c2060] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14dfe40] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14fdc20] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x151ba00] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x152d3d0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14c2060] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14dfe40] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x14fdc20] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x14b8160] [swscaler @ 0x151ba00] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x14a0950] using cpu capabilities: ARMv6 NEON
[libx264 @ 0x14a0950] profile High 4:2:2, level 3.0, 4:2:2 8-bit
[libx264 @ 0x14a0950] 264 - core 148 r2643 5c65704 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=cbr mbtree=0 bitrate=500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=500 vbv_bufsize=1000 nal_hrd=none filler=0 ip_ratio=1.40 aq=0
Output #0, rtsp, to 'rtsp://localhost:554/cam':
  Metadata:
    encoder         : Lavf59.25.100
  Stream #0:0: Video: h264, yuv422p(tv, bt470bg/unknown/unknown, progressive), 640x480, q=2-31, 500 kb/s, 30 fps, 90k tbn
    Metadata:
      encoder         : Lavc59.33.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 500000/0/500000 buffer size: 1000000 vbv_delay: N/A


    


    1. How to create a multithreading ffmpeg for sws_scale ?

    


    2. Does internal multithreading work for mjpeg decoding, for example in AVCodecContext ? If not, what is the best way to create multithreading for decoding ?