
Recherche avancée
Médias (91)
-
Spitfire Parade - Crisis
15 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Wired NextMusic
14 mai 2011, par
Mis à jour : Février 2012
Langue : English
Type : Video
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
-
Sintel MP4 Surround 5.1 Full
13 mai 2011, par
Mis à jour : Février 2012
Langue : English
Type : Video
-
Carte de Schillerkiez
13 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (64)
-
Pas question de marché, de cloud etc...
10 avril 2011Le 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, parL’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, parIl 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 SoltusyukI 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-CFfmpeg 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.20Output 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.62Output 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.66Outupt 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 wolverinI 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 ?