
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 (88)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...) -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)
Sur d’autres sites (5269)
-
ffmpeg - how to pass all streams audio/tmcd, etc from input->output unchanged
22 avril 2021, par QRrabbitPlease help me, with hopefully specific ffmpeg arguments to include in my video encoding.


My work is only related to video stream, so this is the only one I'm changing.
I receive a .mov file(s) that have already been pre-compiled for a specific broadcaster, some of those selfcontained videos have 4 streams (1 video, 2 audio, and some other timecode stream). Others have up to 17 streams : 1-video, 15-audio streams and the final one is unsupported tmcd.


My process pipeline includes only re-encoding/re-processing video stream, and everything else I need to pass along to the output file - all other streams without any changes or alterations.


During this step of encoding, I insert icon.png into position 5:21 from sec 2-3, from 4-5, and from 6-8. To achieve this, I use map option, so my encoding string looks like this :


ffmpeg -i in.mov -i icon.png -i icon.png -i icon.png
 -filter_complex " [0][1]overlay=5:21:enable='between(t,2,3)'[v1];
 [v1][2]overlay=5:21:enable='between(t,4,5)'[v2];
 [v2][3]overlay=5:21:enable='between(t,6,8)'[v3]" -map '[v3]' -map 0:a
 -c:v dvvideo -pix_fmt yuv422p -b:v 115084915 -maxrate 115084915 -minrate 115084915 -r 29.97 -top 1 -color_primaries bt709 -color_trc bt709 -colorspace bt709 -vtag dvh6
 -c:a copy -c:s copy -y out.mov



The problem is that the out.mov only shows with 2 streams instead of 17 (1-video, and 2-audio). All other 15 streams are truncated completely.
Reading some other stackoverflow posts I found a way to transfer all other streams, is by using -map 0 :


But as I tried adding -map 0 on my last line :


...
 -map 0 -c:a copy -c:s copy -y out.mov



but this doubles the number of streams from 17 to 34 - also double in output file size.
If I remove map '[v3]' -map 0:a from my original encoding string and only include -map 0, I get correct number of streams, but, of course icon.png is not getting inserted at the right time. What should I do ?


If there's a way to re-map my -filter_complex to overlay images without using this -map option ? Or, be specific at what each -map referring to ?


If not, what other arguments/parameters can I use, if such option even exists, to copy all streams, subs and all other audio, potentially some other signal for audio impairment, if such exists.


Please help, so I can finally wrap my output and submit my work.


EDIT 1 :
Here's my output :


ffprobe version N-99345-g904ab5365c Copyright (c) 2007-2020 the FFmpeg developers
 built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
 configuration: --enable-filter=qrrabbit --enable-opengl --enable-gpl --enable-libx264 --extra-libs='-lqrencode -lpthread'
 libavutil 56. 59.100 / 56. 59.100
 libavcodec 58.106.100 / 58.106.100
 libavformat 58. 58.100 / 58. 58.100
 libavdevice 58. 11.102 / 58. 11.102
 libavfilter 7. 87.100 / 7. 87.100
 libswscale 5. 8.100 / 5. 8.100
 libswresample 3. 8.100 / 3. 8.100
 libpostproc 55. 8.100 / 55. 8.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mov':
 Metadata:
 major_brand : qt 
 minor_version : 512
 compatible_brands: qt 
 creation_time : 2020-02-29T22:07:42.000000Z
 encoder : Lavf58.58.100
 Duration: 00:00:20.05, start: 0.000000, bitrate: 133544 kb/s
 Stream #0:0: Video: dvvideo (dvh6 / 0x36687664), yuv422p(bt709, top first), 1280x1080 [SAR 3:2 DAR 16:9], 115084 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 29.97 tbc (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : VideoHandler
 encoder : Lavc58.106.100 dvvideo
 timecode : 00:00:00;00
 Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:5(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:6(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:8(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:9(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:10(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:11(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:12(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:13(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:14(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:15(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:16(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 Stream #0:17(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : VideoHandler
 timecode : 00:00:00;00
Unsupported codec with id 0 for input stream 17



and here's ffprobe from the input file :


ffprobe version N-99345-g904ab5365c Copyright (c) 2007-2020 the FFmpeg developers
 built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
 configuration: --enable-filter=qrrabbit --enable-opengl --enable-gpl --enable-libx264 --extra-libs='-lqrencode -lpthread'
 libavutil 56. 59.100 / 56. 59.100
 libavcodec 58.106.100 / 58.106.100
 libavformat 58. 58.100 / 58. 58.100
 libavdevice 58. 11.102 / 58. 11.102
 libavfilter 7. 87.100 / 7. 87.100
 libswscale 5. 8.100 / 5. 8.100
 libswresample 3. 8.100 / 3. 8.100
 libpostproc 55. 8.100 / 55. 8.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
 Metadata:
 major_brand : qt 
 minor_version : 537199360
 compatible_brands: qt 
 creation_time : 2020-02-29T22:07:42.000000Z
 Duration: 00:00:20.05, start: 0.000000, bitrate: 133935 kb/s
 Stream #0:0(eng): Video: dvvideo (dvh6 / 0x36687664), yuv422p(bt709, top coded first (swapped)), 1280x1080 [SAR 3:2 DAR 16:9], 115084 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 29.97 tbc (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Video Media Handler
 encoder : DVCPRO HD 1080i60
 timecode : 00:00:00;00
 Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:2(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:3(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:4(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:5(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:6(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:7(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:8(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:9(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:10(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:11(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:12(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:13(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:14(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:15(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:16(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Apple Sound Media Handler
 timecode : 00:00:00;00
 Stream #0:17(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
 Metadata:
 creation_time : 2020-02-29T22:07:42.000000Z
 handler_name : Time Code Media Handler
 timecode : 00:00:00;00
Unsupported codec with id 0 for input stream 17



-
Duplicated frames when mering multiple videos with xfade filter (ffmpeg)
25 février 2021, par tjkI'm stuck with merging multiple videos with audio. This used to work on most videos I merged before but with some videos, I get the "More than 1000 frames duplicated" warning, and the output video is broken (some videos won't play, just static picture and the sound is misaligned).


All videos are in the same format afaik. The only difference I see is that some are "yuvj420p(pc)" and most are "yuv420p". But I tried merging without those with "yuvj420p(pc)" and it didn't help.


Already tried adding "-vsync vfr", didn't help too.
Interestingly — if I remove the second or the last input video, no warning is given and it all works.


The command I use :


ffmpeg -i intro.mp4 \
 -i 2043651222.mp4 \
 -i 2668231460.mp4 \
 -i 2342967217.mp4 \
 -i 2345792509.mp4 \
 -i 2764881879.mp4 \
 -i 3127825310.mp4 \
 -i 3058954129.mp4 \
 -i 2533841315.mp4 \
 -i 2334544474.mp4 \
 -i 2493440007.mp4 \
 -filter_complex \
"[0][1]xfade=transition=fade:duration=0.5:offset=3.5000000[V01]; \
[V01][2]xfade=transition=fade:duration=0.5:offset=7.67000[V02]; \
[V02][3]xfade=transition=fade:duration=0.5:offset=27.21000[V03]; \
[V03][4]xfade=transition=fade:duration=0.5:offset=37.01000[V04]; \
[V04][5]xfade=transition=fade:duration=0.5:offset=54.11000[V05]; \
[V05][6]xfade=transition=fade:duration=0.5:offset=56.63000[V06]; \
[V06][7]xfade=transition=fade:duration=0.5:offset=80.49000[V07]; \
[V07][8]xfade=transition=fade:duration=0.5:offset=107.23000[V08]; \
[V08][9]xfade=transition=fade:duration=0.5:offset=110.12000[V09]; \
[V09][10]xfade=transition=fade:duration=0.5:offset=118.31000,format=yuv420p[video]; \
[0:a]aresample=async=1:first_pts=0,apad,atrim=0:4[A0]; \
[1:a]aresample=async=1:first_pts=0,apad,atrim=0:4.67[A1]; \
[2:a]aresample=async=1:first_pts=0,apad,atrim=0:20.04[A2]; \
[3:a]aresample=async=1:first_pts=0,apad,atrim=0:10.3[A3]; \
[4:a]aresample=async=1:first_pts=0,apad,atrim=0:17.6[A4]; \
[5:a]aresample=async=1:first_pts=0,apad,atrim=0:3.02[A5]; \
[6:a]aresample=async=1:first_pts=0,apad,atrim=0:24.36[A6]; \
[7:a]aresample=async=1:first_pts=0,apad,atrim=0:27.24[A7]; \
[8:a]aresample=async=1:first_pts=0,apad,atrim=0:3.39[A8]; \
[9:a]aresample=async=1:first_pts=0,apad,atrim=0:8.69[A9]; \
[10:a]aresample=async=1:first_pts=0,apad,atrim=0:14.88[A10]; \
[A0][A1]acrossfade=d=0.5:c1=tri:c2=tri[A0001]; \
[A0001][A2]acrossfade=d=0.5:c1=tri:c2=tri[A0002]; \
[A0002][A3]acrossfade=d=0.5:c1=tri:c2=tri[A0003]; \
[A0003][A4]acrossfade=d=0.5:c1=tri:c2=tri[A0004]; \
[A0004][A5]acrossfade=d=0.5:c1=tri:c2=tri[A0005]; \
[A0005][A6]acrossfade=d=0.5:c1=tri:c2=tri[A0006]; \
[A0006][A7]acrossfade=d=0.5:c1=tri:c2=tri[A0007]; \
[A0007][A8]acrossfade=d=0.5:c1=tri:c2=tri[A0008]; \
[A0008][A9]acrossfade=d=0.5:c1=tri:c2=tri[A0009]; \
[A0009][A10]acrossfade=d=0.5:c1=tri:c2=tri[audio] \
" -map "[video]" -map "[audio]" -movflags +faststart 'compiled.mp4'



Full log :


ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with Apple clang version 11.0.3 (clang-1103.0.32.62)
 configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libavresample 4. 0. 0 / 4. 0. 0
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'intro.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.29.100
 Duration: 00:00:04.00, start: 0.000000, bitrate: 98 kb/s
 Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
 Metadata:
 handler_name : SoundHandler
 Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x1280 [SAR 1:1 DAR 9:16], 85 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : VideoHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '2043651222.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:04.67, start: 0.000000, bitrate: 471 kb/s
 Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 720x1280 [SAR 1:1 DAR 9:16], 333 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : VideoHandler
 Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 129 kb/s (default)
 Metadata:
 handler_name : SoundHandler
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '2668231460.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:20.04, start: 0.000000, bitrate: 1882 kb/s
 Stream #2:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x1280, 1685 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : Core Media Video
 Stream #2:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 191 kb/s (default)
 Metadata:
 handler_name : Core Media Audio
Input #3, mov,mp4,m4a,3gp,3g2,mj2, from '2342967217.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:10.30, start: 0.000000, bitrate: 446 kb/s
 Stream #3:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x1280 [SAR 1:1 DAR 9:16], 367 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : VideoHandler
 Stream #3:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
 Metadata:
 handler_name : SoundHandler
Input #4, mov,mp4,m4a,3gp,3g2,mj2, from '2345792509.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:17.60, start: 0.000000, bitrate: 2546 kb/s
 Stream #4:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x1280, 2342 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : Core Media Video
 Stream #4:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 199 kb/s (default)
 Metadata:
 handler_name : Core Media Audio
Input #5, mov,mp4,m4a,3gp,3g2,mj2, from '2764881879.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:03.02, start: 0.000000, bitrate: 1293 kb/s
 Stream #5:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x1280, 1110 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : Core Media Video
 Stream #5:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 178 kb/s (default)
 Metadata:
 handler_name : Core Media Audio
Input #6, mov,mp4,m4a,3gp,3g2,mj2, from '3127825310.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:24.36, start: 0.000000, bitrate: 401 kb/s
 Stream #6:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x1280 [SAR 1:1 DAR 9:16], 323 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : VideoHandler
 Stream #6:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
 Metadata:
 handler_name : SoundHandler
Input #7, mov,mp4,m4a,3gp,3g2,mj2, from '3058954129.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:27.24, start: 0.000000, bitrate: 1723 kb/s
 Stream #7:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x1280, 1519 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : Core Media Video
 Stream #7:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 194 kb/s (default)
 Metadata:
 handler_name : Core Media Audio
Input #8, mov,mp4,m4a,3gp,3g2,mj2, from '2533841315.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:03.39, start: 0.000000, bitrate: 1807 kb/s
 Stream #8:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x1280, 1657 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : Core Media Video
 Stream #8:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 150 kb/s (default)
 Metadata:
 handler_name : Core Media Audio
Input #9, mov,mp4,m4a,3gp,3g2,mj2, from '2334544474.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:08.69, start: 0.000000, bitrate: 2675 kb/s
 Stream #9:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 720x1280, 2500 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : Core Media Video
 Stream #9:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 180 kb/s (default)
 Metadata:
 handler_name : Core Media Audio
Input #10, mov,mp4,m4a,3gp,3g2,mj2, from '2493440007.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Duration: 00:00:14.88, start: 0.000000, bitrate: 966 kb/s
 Stream #10:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x1280, 889 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
 Metadata:
 handler_name : Core Media Video
 Stream #10:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
 Metadata:
 handler_name : Core Media Audio
File 'compiled.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
 Stream #0:0 (aac) -> aresample
 Stream #0:1 (h264) -> xfade:main
 Stream #1:0 (h264) -> xfade:xfade
 Stream #1:1 (aac) -> aresample
 Stream #2:0 (h264) -> xfade:xfade
 Stream #2:1 (aac) -> aresample
 Stream #3:0 (h264) -> xfade:xfade
 Stream #3:1 (aac) -> aresample
 Stream #4:0 (h264) -> xfade:xfade
 Stream #4:1 (aac) -> aresample
 Stream #5:0 (h264) -> xfade:xfade
 Stream #5:1 (aac) -> aresample
 Stream #6:0 (h264) -> xfade:xfade
 Stream #6:1 (aac) -> aresample
 Stream #7:0 (h264) -> xfade:xfade
 Stream #7:1 (aac) -> aresample
 Stream #8:0 (h264) -> xfade:xfade
 Stream #8:1 (aac) -> aresample
 Stream #9:0 (h264) -> xfade:xfade
 Stream #9:1 (aac) -> aresample
 Stream #10:0 (h264) -> xfade:xfade
 Stream #10:1 (aac) -> aresample
 format -> Stream #0:0 (libx264)
 acrossfade -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[swscaler @ 0x7ff21ef72000] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x7ff227827800] using SAR=1/1
[libx264 @ 0x7ff227827800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7ff227827800] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x7ff227827800] 264 - core 160 r3011M cde9a93 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - 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=12 lookahead_threads=2 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_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 'compiled.mp4':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 720x1280 [SAR 1:1 DAR 9:16], q=-1--1, 30 fps, 15360 tbn, 30 tbc (default)
 Metadata:
 encoder : Lavc58.91.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
 Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 encoder : Lavc58.91.100 aac
More than 1000 frames duplicated 1024kB time=00:00:47.41 bitrate= 176.9kbits/s dup=597 drop=996 speed=5.81x 
[mp4 @ 0x7ff227815200] Starting second pass: moving the moov atom to the beginning of the filep=1954 speed=4.07x 
frame= 3989 fps=121 q=-1.0 Lsize= 13252kB time=00:02:12.98 bitrate= 816.3kbits/s dup=1946 drop=1954 speed=4.05x 
video:11094kB audio:2036kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.927680%
[libx264 @ 0x7ff227827800] frame I:23 Avg QP:14.09 size: 69236
[libx264 @ 0x7ff227827800] frame P:1195 Avg QP:18.60 size: 6527
[libx264 @ 0x7ff227827800] frame B:2771 Avg QP:21.69 size: 710
[libx264 @ 0x7ff227827800] consecutive B-frames: 3.3% 11.5% 2.6% 82.6%
[libx264 @ 0x7ff227827800] mb I I16..4: 36.4% 41.9% 21.7%
[libx264 @ 0x7ff227827800] mb P I16..4: 3.1% 6.0% 1.1% P16..4: 15.4% 5.5% 2.9% 0.0% 0.0% skip:66.0%
[libx264 @ 0x7ff227827800] mb B I16..4: 0.1% 0.1% 0.0% B16..8: 10.2% 0.6% 0.0% direct: 0.4% skip:88.5% L0:42.8% L1:53.3% BI: 3.8%
[libx264 @ 0x7ff227827800] 8x8 transform intra:55.8% inter:63.6%
[libx264 @ 0x7ff227827800] coded y,uvDC,uvAC intra: 25.6% 42.8% 14.5% inter: 2.7% 2.5% 0.0%
[libx264 @ 0x7ff227827800] i16 v,h,dc,p: 45% 22% 14% 19%
[libx264 @ 0x7ff227827800] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 19% 28% 3% 2% 3% 2% 3% 2%
[libx264 @ 0x7ff227827800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 17% 15% 6% 7% 8% 5% 6% 4%
[libx264 @ 0x7ff227827800] i8c dc,h,v,p: 55% 15% 23% 7%
[libx264 @ 0x7ff227827800] Weighted P-Frames: Y:2.0% UV:1.7%
[libx264 @ 0x7ff227827800] ref P L0: 68.4% 13.3% 14.4% 3.9% 0.1%
[libx264 @ 0x7ff227827800] ref B L0: 86.0% 12.0% 2.1%
[libx264 @ 0x7ff227827800] ref B L1: 96.9% 3.1%
[libx264 @ 0x7ff227827800] kb/s:683.43
[aac @ 0x7ff22781fc00] Qavg: 2168.180



-
I received connection refused error while trying to stream live video through RTMP with FFMPEG
25 septembre 2020, par FemzyI am working on a nodeJs app that can send camera stream to third party plartform i.e Facebook and Youtube using the RTMP protoco ;.. It works well on my localhost but once i deploy to the server, it only give me errors. The error I get is below on this content..
Here is my codes


server.js




const child_process = require('child_process'); // To be used later for running FFmpeg
const express = require('express');
const http = require('http');
const WebSocketServer = require('ws').Server;

const app = express();
const server = http.createServer(app).listen(4000, () => {
 console.log('Listening...');
});

// Serve static files out of the www directory, where we will put our HTML page
app.use(express.static(__dirname + '/www'));


const wss = new WebSocketServer({
 server: server
});
wss.on('connection', (ws, req) => {
 
 
 
 const rtmpUrl = 'rtmp://a.rtmp.youtube.com/live2/MyStreamId';
 console.log('Target RTMP URL:', rtmpUrl);
 
 // Launch FFmpeg to handle all appropriate transcoding, muxing, and RTMP.
 // If 'ffmpeg' isn't in your path, specify the full path to the ffmpeg binary.
 const ffmpeg = child_process.spawn('ffmpeg', [
 // Facebook requires an audio track, so we create a silent one here.
 // Remove this line, as well as `-shortest`, if you send audio from the browser.
 //'-f', 'lavfi', '-i', 'anullsrc',
 
 // FFmpeg will read input video from STDIN
 '-i', '-',
 
 // Because we're using a generated audio source which never ends,
 // specify that we'll stop at end of other input. Remove this line if you
 // send audio from the browser.
 //'-shortest',
 
 // If we're encoding H.264 in-browser, we can set the video codec to 'copy'
 // so that we don't waste any CPU and quality with unnecessary transcoding.
 // If the browser doesn't support H.264, set the video codec to 'libx264'
 // or similar to transcode it to H.264 here on the server.
 '-vcodec', 'copy',
 
 // AAC audio is required for Facebook Live. No browser currently supports
 // encoding AAC, so we must transcode the audio to AAC here on the server.
 '-acodec', 'aac',
 
 // FLV is the container format used in conjunction with RTMP
 '-f', 'flv',
 
 // The output RTMP URL.
 // For debugging, you could set this to a filename like 'test.flv', and play
 // the resulting file with VLC. Please also read the security considerations
 // later on in this tutorial.
 rtmpUrl 
 ]);
 
 // If FFmpeg stops for any reason, close the WebSocket connection.
 ffmpeg.on('close', (code, signal) => {
 console.log('FFmpeg child process closed, code ' + code + ', signal ' + signal);
 ws.terminate();
 });
 
 // Handle STDIN pipe errors by logging to the console.
 // These errors most commonly occur when FFmpeg closes and there is still
 // data to write. If left unhandled, the server will crash.
 ffmpeg.stdin.on('error', (e) => {
 console.log('FFmpeg STDIN Error', e);
 });
 
 // FFmpeg outputs all of its messages to STDERR. Let's log them to the console.
 ffmpeg.stderr.on('data', (data) => {
 console.log('FFmpeg STDERR:', data.toString());
 });

 // When data comes in from the WebSocket, write it to FFmpeg's STDIN.
 ws.on('message', (msg) => {
 console.log('DATA', msg);
 ffmpeg.stdin.write(msg);
 });
 
 // If the client disconnects, stop FFmpeg.
 ws.on('close', (e) => {
 ffmpeg.kill('SIGINT');
 });
 
});







On the server.js file i create a websocket to receive stream data from the client side and then use FFMPEG to send the stream data over to youtube via the RTMP url


Here is my client.js code




const ws = new WebSocket(
 'wss://my-websocket-server.com'

 );
 ws.addEventListener('open', (e) => {
 console.log('WebSocket Open', e);
 drawVideosToCanvas();
 mediaStream = getMixedVideoStream(); // 30 FPS
 mediaRecorder = new MediaRecorder(mediaStream, {
 mimeType: 'video/webm;codecs=h264',
 //videoBitsPerSecond : 3000000000
 bitsPerSecond: 6000000
 });

 mediaRecorder.addEventListener('dataavailable', (e) => {
 ws.send(e.data);
 });
 mediaRecorder.onstop = function() {
 ws.close.bind(ws);
 isRecording = false;
 actionBtn.textContent = 'Start Streaming';
 actionBtn.onclick = startRecording;
 }
 mediaRecorder.onstart = function() {
 isRecording = true;
 actionBtn.textContent = 'Stop Streaming';
 actionBtn.onclick = stopRecording;
 screenShareBtn.onclick = startSharing;
 screenShareBtn.disabled = false;
 }
 //mediaRecorder.addEventListener('stop', ws.close.bind(ws));

 mediaRecorder.start(1000); // Start recording, and dump data every second

 });







On my client.js file, i captured users camera and then open the websocket server to send the data to the server.. Every thing works fine on local host expect for when i deploy it to live server..
i am wondering if there is a bad configuration on the server.. The server is Centos 7.8 and the app was runing on Apache software
Here is how i configured the virtual host for the websocket domain




ServerName my-websocket.com

 RewriteEngine on
 RewriteCond %{HTTP:Upgrade} websocket [NC]
 RewriteCond %{HTTP:Connection} upgrade [NC]
 RewriteRule .* "ws://127.0.0.1:3000/$1" [P,L]

 ProxyPass "/" "http://127.0.0.1:3000/$1"
 ProxyPassReverse "/" "http://127.0.0.1:3000/$1"
 ProxyRequests off







I don't know much about server configuration but i just thought may be the configuration has to do with why FFMPEg can not open connection to RTMP protocol on the server.


here is the error am getting




FFmpeg STDERR: Input #0, lavfi, from 'anullsrc':
 Duration:
FFmpeg STDERR: N/A, start: 0.000000, bitrate: 705 kb/s
 Stream #0:0: Audio: pcm_u8, 44100 Hz, stereo, u8, 705 kb/s

DATA <buffer 1a="1a">
DATA <buffer 45="45" df="df" a3="a3" 42="42" 86="86" 81="81" 01="01" f7="f7" f2="f2" 04="04" f3="f3" 08="08" 82="82" 88="88" 6d="6d" 61="61" 74="74" 72="72" 6f="6f" 73="73" 6b="6b" 87="87" 0442="0442" 85="85" 02="02" 18="18" 53="53" 80="80" 67="67" ff="ff" 53991="53991" more="more" bytes="bytes">
DATA <buffer 40="40" c1="c1" 81="81" 00="00" f0="f0" 80="80" 7b="7b" 83="83" 3e="3e" 3b="3b" 07="07" d6="d6" 4e="4e" 1c="1c" 11="11" b4="b4" 7f="7f" cb="cb" 5e="5e" 68="68" 9b="9b" d5="d5" 2a="2a" e3="e3" 06="06" c6="c6" f3="f3" 94="94" ff="ff" 29="29" 16="16" b2="b2" 60="60" 04ac="04ac" 37="37" fb="fb" 1a="1a" 15="15" ea="ea" 39="39" a0="a0" cd="cd" 02="02" b8="b8" 56206="56206" more="more" bytes="bytes">
FFmpeg STDERR: Input #1, matroska,webm, from 'pipe:':
 Metadata:
 encoder :
FFmpeg STDERR: Chrome
 Duration: N/A, start: 0.000000, bitrate: N/A
 Stream #1:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
 Stream #1:1(eng): Video: h264 (Constrained Baseline), yuv420p(progressive), 1366x768, SAR 1:1 DAR 683:384, 30.30 fps, 30 tbr, 1k tbn, 60 tbc (default)

FFmpeg STDERR: [tcp @ 0xe5fac0] Connection to tcp://a.rtmp.youtube.com:1935 failed (Connection refused), trying next address
[rtmp @ 0xe0fb80] Cannot open connection tcp://a.rtmp.youtube.com:1935

FFmpeg STDERR: rtmp://a.rtmp.youtube.com/live2/mystreamid: Network is unreachable

FFmpeg child process closed, code 1, signal null</buffer></buffer></buffer>







I will really appreciate if I could get some insight on what may be causing this issue or what i can do to solve it..Thanks in advance..