Recherche avancée

Médias (1)

Mot : - Tags -/belgique

Autres articles (36)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette 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.

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (5737)

  • popen returns output after delay ?

    7 février 2013, par Scarface

    I am executing FFMPEG with popen() to get the result of the process. The main reason I am doing this is so I can stream constant output and build a progress bar.

    The issue is that the process starts and I receive some initial information. The rest of the information does not appear until after the process is done however. So essentially, the rest of the output (output on the progress) which comes on intervals when the process is going is delayed right before the process and all comes at once after the process is done which is useless.

    I need the output to constantly come so I can update a progress bar. If I change 2>&1 to 2> stderr.txt that text file receives output consistently but I would like to receive in php since many processes may be running. Anyone have any ideas on solving this ? It seems noone can figure this out...and it is driving me crazy ! IF anyone helps me figure this out (and actually solve it), I will start a bounty and then accept their answer.

    $handle = popen ('/usr/local/bin/ffmpeg -i /home/g/Desktop/cave.wmv -deinterlace -acodec libfaac -ab 96k -ar 44100 -vcodec libx264 -s 480x320 -f flv /home/g/Desktop/file.flv 2>&1', 'r');
    if ($handle) {

       while(! feof ($handle)) {

    echo $read = fgets ($handle);

    ob_flush();
       flush();
       }
       pclose ($handle);
    }

    OUTPUTS

       ffmpeg version git-N-30561-g6700aa8, Copyright (c) 2000-2011 the FFmpeg developers built on Jun 5 2011 21:10:26 with gcc 4.5.2 configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-x11grab libavutil 51. 4. 0 / 51. 4. 0 libavcodec 53. 6. 1 / 53. 6. 1 libavformat 53. 2. 0 / 53. 2. 0 libavdevice 53. 1. 1 / 53. 1. 1 libavfilter 2. 13. 0 / 2. 13. 0 libswscale 0. 14. 1 / 0. 14. 1 libpostproc 51. 2. 0 / 51. 2. 0 Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001) Input #0, asf, from '/home/geoff/Desktop/cave.wmv': Metadata: WMFSDKVersion : 11.0.5721.5145 WMFSDKNeeded : 0.0.0.0000 IsVBR : 0 Duration: 00:01:37.93, bitrate: 263 kb/s Stream #0.0(eng): Video: vc1 (Advanced), yuv420p, 320x240, 256 kb/s, PAR 1:1 DAR 4:3, 29.97 tbr, 1k tbn, 1k tbc [buffer @ 0xacae200] w:320 h:240 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param: [scale @ 0xacbc120] w:320 h:240 fmt:yuv420p -> w:480 h:320 fmt:yuv420p flags:0x4 [libx264 @ 0xacbb7e0] Default settings detected, using medium profile [libx264 @ 0xacbb7e0] using SAR=1/1 [libx264 @ 0xacbb7e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle Cache64 [libx264 @ 0xacbb7e0] profile High, level 2.1 [libx264 @ 0xacbb7e0] 264 - core 115 r1995 c1e60b9 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 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=1 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, flv, to '/home/geoff/Desktop/file.flv': Metadata: WMFSDKVersion : 11.0.5721.5145 WMFSDKNeeded : 0.0.0.0000 IsVBR : 0 encoder : Lavf53.2.0 Stream #0.0(eng): Video: libx264, yuv420p, 480x320 [PAR 1:1 DAR 3:2], q=2-31, 200 kb/s, 1k tbn, 29.97 tbc Stream mapping: Stream #0.0 -> #0.0 Press [q] to stop, [?] for help

    **THEN AFTER THE PROCESS IS COMPLETE OUTPUTS**

    frame= 49 fps= 0 q=29.0 size= 17kB time=00:00:00.23 bitrate= 593.9kbits/s frame= 58 fps= 52 q=29.0 size= 29kB time=00:00:00.53 bitrate= 448.9kbits/s frame= 71 fps= 44 q=29.0 size= 48kB time=00:00:00.96 bitrate= 405.7kbits/s frame= 85 fps= 39 q=29.0 size= 69kB time=00:00:01.43 bitrate= 393.2kbits/s frame= 104 fps= 38 q=29.0 size= 90kB time=00:00:02.06 bitrate= 358.3kbits/s frame= 117 fps= 36 q=29.0 size= 104kB time=00:00:02.50 bitrate= 339.5kbits/s frame= 134 fps= 36 q=29.0 size= 119kB time=00:00:03.06 bitrate= 317.6kbits/s frame= 153 fps= 36 q=29.0 size= 137kB time=00:00:03.70 bitrate= 303.5kbits/s frame= 167 fps= 35 q=29.0 size= 153kB time=00:00:04.17 bitrate= 300.1kbits/s frame= 185 fps= 35 q=29.0 size= 173kB time=00:00:04.77 bitrate= 296.8kbits/s frame= 201 fps= 35 q=29.0 size= 199kB time=00:00:05.30 bitrate= 306.8kbits/s frame= 218 fps= 35 q=29.0 size= 222kB time=00:00:05.87 bitrate= 310.3kbits/s frame= 237 fps= 35 q=29.0 size= 245kB time=00:00:06.50 bitrate= 309.1kbits/s frame= 254 fps= 35 q=29.0 size= 267kB time=00:00:07.07 bitrate= 309.7kbits/s frame= 270 fps= 34 q=29.0 size= 285kB time=00:00:07.60 bitrate= 307.2kbits/s frame= 292 fps= 35 q=29.0 size= 314kB time=00:00:08.34 bitrate= 308.5kbits/s frame= 316 fps= 36 q=29.0 size= 334kB time=00:00:09.14 bitrate= 299.3kbits/s frame= 336 fps= 36 q=29.0 size= 356kB time=00:00:09.80 bitrate= 297.0kbits/s frame= 356 fps= 36 q=29.0 size= 381kB time=00:00:10.47 bitrate= 297.9kbits/s frame= 375 fps= 36 q=29.0 size= 405kB time=00:00:11.11 bitrate= 298.5kbits/s frame= 391 fps= 36 q=29.0 size= 431kB time=00:00:11.64 bitrate= 303.5kbits/s frame= 408 fps= 36 q=29.0 size= 456kB time=00:00:12.21 bitrate= 305.8kbits/s frame= 424 fps= 35 q=29.0 size= 479kB time=00:00:12.74 bitrate= 307.8kbits/s frame= 441 fps= 35 q=29.0 size= 503kB time=00:00:13.31 bitrate= 309.3kbits/s frame= 462 fps= 36 q=29.0 size= 526kB time=00:00:14.01 bitrate= 307.4kbits/s frame= 483 fps= 36 q=29.0 size= 546kB time=00:00:14.71 bitrate= 304.2kbits/s frame= 501 fps= 36 q=29.0 size= 583kB time=00:00:15.31 bitrate= 311.9kbits/s frame= 520 fps= 36 q=29.0 size= 609kB time=00:00:15.95 bitrate= 312.7kbits/s frame= 541 fps= 36 q=29.0 size= 636kB time=00:00:16.65 bitrate= 313.1kbits/s frame= 559 fps= 36 q=29.0 size= 668kB time=00:00:17.25 bitrate= 317.3kbits/s frame= 574 fps= 36 q=29.0 size= 698kB time=00:00:17.75 bitrate= 321.9kbits/s frame= 593 fps= 36 q=29.0 size= 732kB time=00:00:18.38 bitrate= 326.1kbits/s frame= 611 fps= 36 q=29.0 size= 760kB time=00:00:18.98 bitrate= 328.0kbits/s frame= 631 fps= 36 q=29.0 size= 788kB time=00:00:19.65 bitrate= 328.5kbits/s frame= 651 fps= 36 q=29.0 size= 817kB time=00:00:20.32 bitrate= 329.2kbits/s frame= 670 fps= 36 q=29.0 size= 842kB time=00:00:20.95 bitrate= 329.0kbits/s frame= 689 fps= 36 q=29.0 size= 868kB time=00:00:21.58 bitrate= 329.4kbits/s frame= 707 fps= 36 q=29.0 size= 896kB time=00:00:22.18 bitrate= 330.8kbits/s frame= 723 fps= 36 q=29.0 size= 924kB time=00:00:22.72 bitrate= 333.0kbits/s frame= 741 fps= 36 q=29.0 size= 955kB time=00:00:23.32 bitrate= 335.4kbits/s frame= 761 fps= 36 q=29.0 size= 999kB time=00:00:23.99 bitrate= 341.0kbits/s frame= 783 fps= 36 q=29.0 size= 1025kB time=00:00:24.72 bitrate= 339.8kbits/s frame= 802 fps= 36 q=29.0 size= 1047kB time=00:00:25.35 bitrate= 338.3kbits/s frame= 821 fps= 36 q=29.0 size= 1076kB time=00:00:25.99 bitrate= 339.3kbits/s frame= 841 fps= 36 q=29.0 size= 1104kB time=00:00:26.66 bitrate= 339.2kbits/s frame= 861 fps= 36 q=29.0 size= 1137kB time=00:00:27.32 bitrate= 340.7kbits/s frame= 881 fps= 36 q=29.0 size= 1164kB time=00:00:27.99 bitrate= 340.7kbits/s frame= 901 fps= 36 q=29.0 size= 1196kB time=00:00:28.66 bitrate= 341.9kbits/s frame= 919 fps= 36 q=29.0 size= 1223kB time=00:00:29.26 bitrate= 342.5kbits/s frame= 939 fps= 36 q=29.0 size= 1259kB time=00:00:29.93 bitrate= 344.7kbits/s frame= 954 fps= 36 q=29.0 size= 1301kB time=00:00:30.43 bitrate= 350.1kbits/s frame= 970 fps= 36 q=29.0 size= 1337kB time=00:00:30.96 bitrate= 353.7kbits/s frame= 988 fps= 36 q=29.0 size= 1373kB time=00:00:31.56 bitrate= 356.3kbits/s frame= 1005 fps= 36 q=29.0 size= 1418kB time=00:00:32.13 bitrate= 361.4kbits/s frame= 1023 fps= 36 q=29.0 size= 1448kB time=00:00:32.73 bitrate= 362.4kbits/s frame= 1040 fps= 36 q=29.0 size= 1483kB time=00:00:33.30 bitrate= 364.9kbits/s frame= 1058 fps= 36 q=29.0 size= 1519kB time=00:00:33.90 bitrate= 367.1kbits/s frame= 1074 fps= 36 q=29.0 size= 1546kB time=00:00:34.43 bitrate= 367.7kbits/s frame= 1091 fps= 36 q=29.0 size= 1573kB time=00:00:35.00 bitrate= 368.3kbits/s frame= 1111 fps= 36 q=29.0 size= 1593kB time=00:00:35.66 bitrate= 365.9kbits/s frame= 1126 fps= 36 q=29.0 size= 1612kB time=00:00:36.17 bitrate= 365.1kbits/s frame= 1140 fps= 36 q=29.0 size= 1637kB time=00:00:36.63 bitrate= 366.1kbits/s frame= 1151 fps= 35 q=29.0 size= 1657kB time=00:00:37.00 bitrate= 366.9kbits/s frame= 1170 fps= 35 q=29.0 size= 1692kB time=00:00:37.63 bitrate= 368.3kbits/s frame= 1190 fps= 35 q=29.0 size= 1724kB time=00:00:38.30 bitrate= 368.6kbits/s frame= 1208 fps= 35 q=29.0 size= 1751kB time=00:00:38.90 bitrate= 368.6kbits/s frame= 1225 fps= 35 q=29.0 size= 1776kB time=00:00:39.47 bitrate= 368.6kbits/s frame= 1242 fps= 35 q=29.0 size= 1806kB time=00:00:40.04 bitrate= 369.4kbits/s frame= 1265 fps= 35 q=29.0 size= 1840kB time=00:00:40.80 bitrate= 369.4kbits/s frame= 1283 fps= 35 q=29.0 size= 1858kB time=00:00:41.40 bitrate= 367.5kbits/s frame= 1298 fps= 35 q=29.0 size= 1874kB time=00:00:41.90 bitrate= 366.3kbits/s frame= 1317 fps= 35 q=29.0 size= 1898kB time=00:00:42.54 bitrate= 365.5kbits/s frame= 1335 fps= 35 q=29.0 size= 1931kB time=00:00:43.14 bitrate= 366.7kbits/s frame= 1353 fps= 35 q=29.0 size= 1966kB time=00:00:43.74 bitrate= 368.2kbits/s frame= 1371 fps= 35 q=29.0 size= 1996kB time=00:00:44.34 bitrate= 368.8kbits/s frame= 1391 fps= 35 q=29.0 size= 2029kB time=00:00:45.01 bitrate= 369.3kbits/s frame= 1410 fps= 35 q=29.0 size= 2062kB time=00:00:45.64 bitrate= 370.2kbits/s frame= 1430 fps= 35 q=29.0 size= 2089kB time=00:00:46.31 bitrate= 369.4kbits/s frame= 1449 fps= 35 q=29.0 size= 2114kB time=00:00:46.94 bitrate= 368.8kbits/s frame= 1469 fps= 35 q=29.0 size= 2140kB time=00:00:47.61 bitrate= 368.1kbits/s frame= 1488 fps= 35 q=29.0 size= 2169kB time=00:00:48.24 bitrate= 368.3kbits/s frame= 1506 fps= 35 q=29.0 size= 2212kB time=00:00:48.84 bitrate= 371.0kbits/s frame= 1522 fps= 35 q=29.0 size= 2248kB time=00:00:49.38 bitrate= 372.8kbits/s frame= 1540 fps= 35 q=29.0 size= 2278kB time=00:00:49.98 bitrate= 373.4kbits/s frame= 1558 fps= 35 q=29.0 size= 2314kB time=00:00:50.58 bitrate= 374.7kbits/s frame= 1577 fps= 35 q=29.0 size= 2346kB time=00:00:51.21 bitrate= 375.2kbits/s frame= 1598 fps= 35 q=29.0 size= 2377kB time=00:00:51.91 bitrate= 375.1kbits/s frame= 1615 fps= 35 q=29.0 size= 2409kB time=00:00:52.48 bitrate= 375.9kbits/s frame= 1633 fps= 35 q=29.0 size= 2440kB time=00:00:53.08 bitrate= 376.4kbits/s frame= 1651 fps= 35 q=29.0 size= 2470kB time=00:00:53.68 bitrate= 376.9kbits/s frame= 1670 fps= 35 q=29.0 size= 2501kB time=00:00:54.32 bitrate= 377.2kbits/s frame= 1690 fps= 35 q=29.0 size= 2539kB time=00:00:54.98 bitrate= 378.3kbits/s frame= 1707 fps= 35 q=29.0 size= 2570kB time=00:00:55.55 bitrate= 378.9kbits/s frame= 1725 fps= 35 q=29.0 size= 2601kB time=00:00:56.15 bitrate= 379.4kbits/s frame= 1743 fps= 35 q=29.0 size= 2632kB time=00:00:56.75 bitrate= 379.8kbits/s frame= 1762 fps= 35 q=29.0 size= 2677kB time=00:00:57.39 bitrate= 382.2kbits/s frame= 1781 fps= 35 q=29.0 size= 2706kB time=00:00:58.02 bitrate= 382.0kbits/s frame= 1800 fps= 35 q=29.0 size= 2738kB time=00:00:58.65 bitrate= 382.3kbits/s frame= 1821 fps= 35 q=29.0 size= 2765kB time=00:00:59.36 bitrate= 381.6kbits/s frame= 1841 fps= 36 q=29.0 size= 2793kB time=00:01:00.02 bitrate= 381.2kbits/s frame= 1857 fps= 35 q=29.0 size= 2822kB time=00:01:00.56 bitrate= 381.7kbits/s frame= 1875 fps= 35 q=29.0 size= 2849kB time=00:01:01.16 bitrate= 381.6kbits/s frame= 1894 fps= 35 q=29.0 size= 2874kB time=00:01:01.79 bitrate= 381.0kbits/s frame= 1914 fps= 35 q=29.0 size= 2900kB time=00:01:02.46 bitrate= 380.4kbits/s frame= 1933 fps= 35 q=29.0 size= 2924kB time=00:01:03.09 bitrate= 379.7kbits/s frame= 1954 fps= 36 q=29.0 size= 2946kB time=00:01:03.79 bitrate= 378.3kbits/s frame= 1974 fps= 36 q=29.0 size= 2971kB time=00:01:04.46 bitrate= 377.5kbits/s frame= 1991 fps= 36 q=29.0 size= 3005kB time=00:01:05.03 bitrate= 378.5kbits/s frame= 2006 fps= 35 q=29.0 size= 3043kB time=00:01:05.53 bitrate= 380.4kbits/s frame= 2024 fps= 35 q=29.0 size= 3074kB time=00:01:06.13 bitrate= 380.8kbits/s frame= 2042 fps= 35 q=29.0 size= 3099kB time=00:01:06.73 bitrate= 380.5kbits/s frame= 2059 fps= 35 q=29.0 size= 3122kB time=00:01:07.30 bitrate= 380.0kbits/s frame= 2077 fps= 35 q=29.0 size= 3149kB time=00:01:07.90 bitrate= 379.9kbits/s frame= 2096 fps= 35 q=29.0 size= 3172kB time=00:01:08.53 bitrate= 379.2kbits/s frame= 2117 fps= 35 q=29.0 size= 3196kB time=00:01:09.23 bitrate= 378.2kbits/s frame= 2129 fps= 35 q=29.0 size= 3214kB time=00:01:09.63 bitrate= 378.0kbits/s frame= 2147 fps= 35 q=29.0 size= 3246kB time=00:01:10.23 bitrate= 378.6kbits/s frame= 2167 fps= 35 q=29.0 size= 3268kB time=00:01:10.90 bitrate= 377.5kbits/s frame= 2185 fps= 35 q=29.0 size= 3298kB time=00:01:11.50 bitrate= 377.8kbits/s frame= 2204 fps= 35 q=29.0 size= 3327kB time=00:01:12.13 bitrate= 377.8kbits/s frame= 2222 fps= 35 q=29.0 size= 3359kB time=00:01:12.74 bitrate= 378.3kbits/s frame= 2242 fps= 35 q=29.0 size= 3386kB time=00:01:13.40 bitrate= 377.9kbits/s frame= 2261 fps= 35 q=29.0 size= 3428kB time=00:01:14.04 bitrate= 379.3kbits/s frame= 2280 fps= 35 q=29.0 size= 3459kB time=00:01:14.67 bitrate= 379.5kbits/s frame= 2299 fps= 35 q=29.0 size= 3494kB time=00:01:15.30 bitrate= 380.1kbits/s frame= 2318 fps= 35 q=29.0 size= 3514kB time=00:01:15.94 bitrate= 379.1kbits/s frame= 2340 fps= 36 q=29.0 size= 3539kB time=00:01:16.67 bitrate= 378.1kbits/s frame= 2360 fps= 36 q=29.0 size= 3563kB time=00:01:17.34 bitrate= 377.4kbits/s frame= 2377 fps= 36 q=29.0 size= 3586kB time=00:01:17.91 bitrate= 377.1kbits/s frame= 2393 fps= 36 q=29.0 size= 3606kB time=00:01:18.44 bitrate= 376.6kbits/s frame= 2410 fps= 35 q=29.0 size= 3625kB time=00:01:19.01 bitrate= 375.9kbits/s frame= 2427 fps= 35 q=29.0 size= 3639kB time=00:01:19.57 bitrate= 374.7kbits/s frame= 2444 fps= 35 q=29.0 size= 3656kB time=00:01:20.14 bitrate= 373.7kbits/s frame= 2461 fps= 35 q=29.0 size= 3680kB time=00:01:20.71 bitrate= 373.5kbits/s frame= 2473 fps= 35 q=29.0 size= 3702kB time=00:01:21.11 bitrate= 373.9kbits/s frame= 2488 fps= 35 q=29.0 size= 3722kB time=00:01:21.61 bitrate= 373.6kbits/s frame= 2506 fps= 35 q=29.0 size= 3764kB time=00:01:22.21 bitrate= 375.0kbits/s frame= 2522 fps= 35 q=29.0 size= 3788kB time=00:01:22.75 bitrate= 375.0kbits/s frame= 2539 fps= 35 q=29.0 size= 3820kB time=00:01:23.31 bitrate= 375.6kbits/s frame= 2556 fps= 35 q=29.0 size= 3851kB time=00:01:23.88 bitrate= 376.1kbits/s frame= 2571 fps= 35 q=29.0 size= 3885kB time=00:01:24.38 bitrate= 377.2kbits/s frame= 2587 fps= 35 q=29.0 size= 3919kB time=00:01:24.91 bitrate= 378.1kbits/s frame= 2600 fps= 35 q=29.0 size= 3949kB time=00:01:25.35 bitrate= 379.0kbits/s frame= 2616 fps= 35 q=29.0 size= 3975kB time=00:01:25.88 bitrate= 379.1kbits/s frame= 2633 fps= 35 q=29.0 size= 4003kB time=00:01:26.45 bitrate= 379.3kbits/s frame= 2653 fps= 35 q=29.0 size= 4029kB time=00:01:27.12 bitrate= 378.9kbits/s frame= 2665 fps= 35 q=29.0 size= 4045kB time=00:01:27.52 bitrate= 378.6kbits/s frame= 2682 fps= 35 q=29.0 size= 4068kB time=00:01:28.08 bitrate= 378.3kbits/s frame= 2701 fps= 35 q=29.0 size= 4084kB time=00:01:28.72 bitrate= 377.1kbits/s frame= 2719 fps= 35 q=29.0 size= 4124kB time=00:01:29.32 bitrate= 378.2kbits/s frame= 2735 fps= 35 q=29.0 size= 4154kB time=00:01:29.85 bitrate= 378.7kbits/s frame= 2753 fps= 35 q=29.0 size= 4201kB time=00:01:30.45 bitrate= 380.5kbits/s frame= 2771 fps= 35 q=29.0 size= 4230kB time=00:01:31.05 bitrate= 380.6kbits/s frame= 2788 fps= 35 q=29.0 size= 4259kB time=00:01:31.62 bitrate= 380.8kbits/s frame= 2805 fps= 35 q=29.0 size= 4287kB time=00:01:32.19 bitrate= 380.9kbits/s frame= 2825 fps= 35 q=29.0 size= 4318kB time=00:01:32.86 bitrate= 380.9kbits/s frame= 2847 fps= 35 q=29.0 size= 4334kB time=00:01:33.59 bitrate= 379.3kbits/s frame= 2866 fps= 35 q=29.0 size= 4371kB time=00:01:34.22 bitrate= 380.0kbits/s frame= 2885 fps= 35 q=29.0 size= 4395kB time=00:01:34.86 bitrate= 379.6kbits/s frame= 2903 fps= 35 q=29.0 size= 4424kB time=00:01:35.46 bitrate= 379.6kbits/s frame= 2921 fps= 35 q=29.0 size= 4450kB time=00:01:36.06 bitrate= 379.5kbits/s frame= 2934 fps= 35 q=29.0 Lsize= 4512kB time=00:01:37.86 bitrate= 377.7kbits/s dup=0 drop=1 video:4454kB audio:0kB global headers:0kB muxing overhead 1.293893% frame I:13 Avg QP:19.66 size: 13557 [libx264 @ 0x95737e0] frame P:1221 Avg QP:23.87 size: 2962 [libx264 @ 0x95737e0] frame B:1700 Avg QP:30.26 size: 451 [libx264 @ 0x95737e0] consecutive B-frames: 7.2% 33.5% 39.7% 19.6% [libx264 @ 0x95737e0] mb I I16..4: 9.6% 73.3% 17.0% [libx264 @ 0x95737e0] mb P I16..4: 0.4% 2.5% 0.4% P16..4: 37.8% 18.9% 8.1% 0.0% 0.0% skip:31.8% [libx264 @ 0x95737e0] mb B I16..4: 0.0% 0.1% 0.0% B16..8: 30.9% 1.9% 0.4% direct: 0.9% skip:65.8% L0:30.8% L1:63.8% BI: 5.4% [libx264 @ 0x95737e0] 8x8 transform intra:74.5% inter:72.0% [libx264 @ 0x95737e0] coded y,uvDC,uvAC intra: 79.7% 84.7% 50.5% inter: 14.2% 13.9% 0.7% [libx264 @ 0x95737e0] i16 v,h,dc,p: 60% 18% 4% 18% [libx264 @ 0x95737e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 12% 10% 4% 10% 15% 7% 10% 7% [libx264 @ 0x95737e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 19% 9% 4% 10% 13% 6% 8% 4% [libx264 @ 0x95737e0] i8c dc,h,v,p: 46% 21% 22% 12% [libx264 @ 0x95737e0] Weighted P-Frames: Y:0.8% UV:0.4% [libx264 @ 0x95737e0] ref P L0: 65.4% 20.8% 10.8% 2.9% 0.0% [libx264 @ 0x95737e0] ref B L0: 91.4% 8.0% 0.6% [libx264 @ 0x95737e0] ref B L1: 95.6% 4.4% [libx264 @ 0x95737e0] kb/s:372.66
  • Error transcoding with FFmpeg : Error : Output format hls is not available

    6 mai 2024, par asif mohmd

    I am using FFmpeg library to transcode a video file into multiple resolutions and create an HLS (HTTP Live Streaming) master playlist.

    


    It takes a video file as input but its does give me the output with HLS playlist.I got a error called "Output format hls is not available". Only the Output directory is creating

    


    I am using FFMpeg 7.0 full build version and also tried older versions and ffmpeg essentials and also tried chocolatey.

    


    if i remove the implementation of HLS from this code.it will create 4 different resolution videos in my output.

    


    Note:I just tried this same code on my friend MAC Book by only changing the setffmpegPath : "ffmpeg.setFfmpegPath("C :\ffmpeg\bin\ffmpeg.exe") ;" to his ffmpeg directory.
Its working perfectly in his mac book

    


    import "dotenv/config";&#xA;import * as fs from "fs";&#xA;import * as path from "path";&#xA;import ffmpeg from "fluent-ffmpeg";&#xA;import crypto from "crypto";&#xA;&#xA;ffmpeg.setFfmpegPath("C:\\ffmpeg\\bin\\ffmpeg.exe");&#xA;&#xA;export const FFmpegTranscoder = async (file: any): Promise<any> => {&#xA;  try {&#xA;    console.log("Starting script");&#xA;    console.time("req_time");&#xA;&#xA;    const randomName = (bytes = 32) =>&#xA;      crypto.randomBytes(bytes).toString("hex");&#xA;    const fileName = randomName();&#xA;    const directoryPath = path.join(__dirname, "..", "..", "input");&#xA;    const filePath = path.join(directoryPath, `${fileName}.mp4`);&#xA;&#xA;    if (!fs.existsSync(directoryPath)) {&#xA;      fs.mkdirSync(directoryPath, { recursive: true });&#xA;    }&#xA;&#xA;    const paths = await new Promise<any>((resolve, reject) => {&#xA;      fs.writeFile(filePath, file, async (err) => {&#xA;        if (err) {&#xA;          console.error("Error saving file:", err);&#xA;          throw err;&#xA;        }&#xA;        console.log("File saved successfully:", filePath);&#xA;&#xA;        try {&#xA;          const outputDirectoryPath = await transcodeWithFFmpeg(&#xA;            fileName,&#xA;            filePath&#xA;          );&#xA;          resolve({ directoryPath, filePath, fileName, outputDirectoryPath });&#xA;        } catch (error) {&#xA;          console.error("Error transcoding with FFmpeg:", error);&#xA;        }&#xA;      });&#xA;    });&#xA;    return paths;&#xA;  } catch (e: any) {&#xA;    console.log(e);&#xA;  }&#xA;};&#xA;&#xA;const transcodeWithFFmpeg = async (fileName: string, filePath: string) => {&#xA;  const directoryPath = path.join(&#xA;    __dirname,&#xA;    "..",&#xA;    "..",&#xA;    `output/hls/${fileName}`&#xA;  );&#xA;&#xA;  if (!fs.existsSync(directoryPath)) {&#xA;    fs.mkdirSync(directoryPath, { recursive: true });&#xA;  }&#xA;&#xA;  const resolutions = [&#xA;    {&#xA;      resolution: "256x144",&#xA;      videoBitrate: "200k",&#xA;      audioBitrate: "64k",&#xA;    },&#xA;    {&#xA;      resolution: "640x360",&#xA;      videoBitrate: "800k",&#xA;      audioBitrate: "128k",&#xA;    },&#xA;    {&#xA;      resolution: "1280x720",&#xA;      videoBitrate: "2500k",&#xA;      audioBitrate: "192k",&#xA;    },&#xA;    {&#xA;      resolution: "1920x1080",&#xA;      videoBitrate: "5000k",&#xA;      audioBitrate: "256k",&#xA;    },&#xA;  ];&#xA;&#xA;  const variantPlaylists: { resolution: string; outputFileName: string }[] = [];&#xA;&#xA;  for (const { resolution, videoBitrate, audioBitrate } of resolutions) {&#xA;    console.log(`HLS conversion starting for ${resolution}`);&#xA;    const outputFileName = `${fileName}_${resolution}.m3u8`;&#xA;    const segmentFileName = `${fileName}_${resolution}_%03d.ts`;&#xA;&#xA;    await new Promise<void>((resolve, reject) => {&#xA;      ffmpeg(filePath)&#xA;        .outputOptions([&#xA;          `-c:v h264`,&#xA;          `-b:v ${videoBitrate}`,&#xA;          `-c:a aac`,&#xA;          `-b:a ${audioBitrate}`,&#xA;          `-vf scale=${resolution}`,&#xA;          `-f hls`,&#xA;          `-hls_time 10`,&#xA;          `-hls_list_size 0`,&#xA;          `-hls_segment_filename ${directoryPath}/${segmentFileName}`,&#xA;        ])&#xA;        .output(`${directoryPath}/${outputFileName}`)&#xA;        .on("end", () => resolve())&#xA;        .on("error", (err) => reject(err))&#xA;        .run();&#xA;    });&#xA;    const variantPlaylist = {&#xA;      resolution,&#xA;      outputFileName,&#xA;    };&#xA;    variantPlaylists.push(variantPlaylist);&#xA;    console.log(`HLS conversion done for ${resolution}`);&#xA;  }&#xA;  console.log(`HLS master m3u8 playlist generating`);&#xA;&#xA;  let masterPlaylist = variantPlaylists&#xA;    .map((variantPlaylist) => {&#xA;      const { resolution, outputFileName } = variantPlaylist;&#xA;      const bandwidth =&#xA;        resolution === "256x144"&#xA;          ? 264000&#xA;          : resolution === "640x360"&#xA;          ? 1024000&#xA;          : resolution === "1280x720"&#xA;          ? 3072000&#xA;          : 5500000;&#xA;      ``;&#xA;      return `#EXT-X-STREAM-INF:BANDWIDTH=${bandwidth},RESOLUTION=${resolution}\n${outputFileName}`;&#xA;    })&#xA;    .join("\n");&#xA;  masterPlaylist = `#EXTM3U\n` &#x2B; masterPlaylist;&#xA;&#xA;  const masterPlaylistFileName = `${fileName}_master.m3u8`;&#xA;&#xA;  const masterPlaylistPath = `${directoryPath}/${masterPlaylistFileName}`;&#xA;  fs.writeFileSync(masterPlaylistPath, masterPlaylist);&#xA;  console.log(`HLS master m3u8 playlist generated`);&#xA;  return directoryPath;&#xA;};&#xA;</void></any></any>

    &#xA;

    My console.log is :

    &#xA;

        Starting script&#xA;    HLS conversion starting for 256x144&#xA;    Error transcoding with FFmpeg: Error: Output format hls is not available&#xA;        at C:\Users\asifa\Desktop\Genius Grid\Transcode-service\node_modules\fluent-ffmpeg\lib\capabilities.js:589:21&#xA;        at nextTask (C:\Users\asifa\Desktop\Genius Grid\Transcode-service\node_modules\async\dist\async.js:5791:13)&#xA;        at next (C:\Users\asifa\Desktop\Genius Grid\Transcode-service\node_modules\async\dist\async.js:5799:13)&#xA;        at C:\Users\asifa\Desktop\Genius Grid\Transcode-service\node_modules\async\dist\async.js:329:20&#xA;        at C:\Users\asifa\Desktop\Genius Grid\Transcode-service\node_modules\fluent-ffmpeg\lib\capabilities.js:549:7&#xA;        at handleExit (C:\Users\asifa\Desktop\Genius Grid\Transcode-service\node_modules\fluent-ffmpeg\lib\processor.js:170:11)&#xA;        at ChildProcess.<anonymous> (C:\Users\asifa\Desktop\Genius Grid\Transcode-service\node_modules\fluent-ffmpeg\lib\processor.js:184:11)&#xA;        at ChildProcess.emit (node:events:518:28)&#xA;        at ChildProcess.emit (node:domain:488:12)&#xA;        at Process.ChildProcess._handle.onexit (node:internal/child_process:294:12) &#xA;</anonymous>

    &#xA;

    I am using Windows 11 and FFMpeg version 7.0. I repeatedly checked, using CMD commands, that my FFMpeg was installed correctly and confirmed the environment variables path, experimented with various FFMpeg versions, and tried with FFMpeg full build Chocolatey package.

    &#xA;

    In Command Line its working perfectly :

    &#xA;

    PS C:\Users\asifa\Desktop\test fmmpeg> ffmpeg -hide_banner -y -i .\SampleVideo_1280x720_30mb.mp4 -vf scale=w=640:h=360:force_original_aspect_ratio=decrease -c:a aac -b:v 800k -c:v h264 -b:a 128k -f hls -hls_time 14 -hls_list_size 0 -hls_segment_filename beach/480p_%03d.ts beach/480p.m3u8&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;.\SampleVideo_1280x720_30mb.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    creation_time   : 1970-01-01T00:00:00.000000Z&#xA;    encoder         : Lavf53.24.2&#xA;  Duration: 00:02:50.86, start: 0.000000, bitrate: 1474 kb/s&#xA;  Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 1086 kb/s, 25 fps, 25 tbr, 12800 tbn (default)&#xA;      Metadata:&#xA;        creation_time   : 1970-01-01T00:00:00.000000Z&#xA;        handler_name    : VideoHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)&#xA;      Metadata:&#xA;        creation_time   : 1970-01-01T00:00:00.000000Z&#xA;        handler_name    : SoundHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))&#xA;  Stream #0:1 -> #0:1 (aac (native) -> aac (native))&#xA;Press [q] to stop, [?] for help&#xA;[libx264 @ 000001ef1288ec00] using SAR=1/1&#xA;[libx264 @ 000001ef1288ec00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2&#xA;[libx264 @ 000001ef1288ec00] profile High, level 3.0, 4:2:0, 8-bit&#xA;[libx264 @ 000001ef1288ec00] 264 - core 164 r3190 7ed753b - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - 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=11 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_lookahead=40 rc=abr mbtree=1 bitrate=800 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00&#xA;Output #0, hls, to &#x27;beach/480p.m3u8&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf61.1.100&#xA;  Stream #0:0(und): Video: h264, yuv420p(progressive), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 800 kb/s, 25 fps, 90k tbn (default)&#xA;      Metadata:&#xA;        creation_time   : 1970-01-01T00:00:00.000000Z&#xA;        handler_name    : VideoHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;        encoder         : Lavc61.3.100 libx264&#xA;      Side data:&#xA;        cpb: bitrate max/min/avg: 0/0/800000 buffer size: 0 vbv_delay: N/A&#xA;  Stream #0:1(und): Audio: aac (LC), 48000 Hz, 5.1, fltp, 128 kb/s (default)&#xA;      Metadata:&#xA;        creation_time   : 1970-01-01T00:00:00.000000Z&#xA;        handler_name    : SoundHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;        encoder         : Lavc61.3.100 aac&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_000.ts&#x27; for writing speed=15.5x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_001.ts&#x27; for writing speed=17.9x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_002.ts&#x27; for writing speed=17.3x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_003.ts&#x27; for writing speed=19.4x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_004.ts&#x27; for writing speed=19.3x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_005.ts&#x27; for writing speed=19.2x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_006.ts&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_007.ts&#x27; for writing speed=19.4x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_008.ts&#x27; for writing speed=19.5x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_009.ts&#x27; for writing speed=19.5x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_010.ts&#x27; for writing speed=19.4x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p_011.ts&#x27; for writing/A    =19.4x&#xA;[hls @ 000001ef12482040] Opening &#x27;beach/480p.m3u8.tmp&#x27; for writing&#xA;[out#0/hls @ 000001ef11d4e880] video:17094KiB audio:2680KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown&#xA;frame= 4271 fps=485 q=-1.0 Lsize=N/A time=00:02:50.76 bitrate=N/A speed=19.4x&#xA;[libx264 @ 000001ef1288ec00] frame I:45    Avg QP:10.29  size: 60418&#xA;[libx264 @ 000001ef1288ec00] frame P:1914  Avg QP:14.53  size:  5582&#xA;[libx264 @ 000001ef1288ec00] frame B:2312  Avg QP:20.63  size:  1774&#xA;[libx264 @ 000001ef1288ec00] consecutive B-frames: 22.9% 11.9%  8.6% 56.6%&#xA;[libx264 @ 000001ef1288ec00] mb I  I16..4: 15.6% 32.1% 52.2%&#xA;[libx264 @ 000001ef1288ec00] mb P  I16..4:  0.3%  3.4%  1.2%  P16..4: 20.3% 10.0% 13.1%  0.0%  0.0%    skip:51.8%&#xA;[libx264 @ 000001ef1288ec00] mb B  I16..4:  0.1%  0.9%  0.4%  B16..8: 17.2%  5.6%  2.8%  direct: 2.0%  skip:71.0%  L0:41.5% L1:44.1% BI:14.4%&#xA;[libx264 @ 000001ef1288ec00] final ratefactor: 16.13&#xA;[libx264 @ 000001ef1288ec00] 8x8 transform intra:58.4% inter:51.7%&#xA;[libx264 @ 000001ef1288ec00] coded y,uvDC,uvAC intra: 86.7% 94.3% 78.8% inter: 12.6% 15.0% 4.5%&#xA;[libx264 @ 000001ef1288ec00] i16 v,h,dc,p: 17% 42% 14% 28%&#xA;[libx264 @ 000001ef1288ec00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 19% 11%  6%  7%  8%  8%  9%  9%&#xA;[libx264 @ 000001ef1288ec00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 18% 12%  6%  9%  9%  8%  8%  7%&#xA;[libx264 @ 000001ef1288ec00] i8c dc,h,v,p: 44% 24% 20% 12%&#xA;[libx264 @ 000001ef1288ec00] Weighted P-Frames: Y:0.0% UV:0.0%&#xA;[libx264 @ 000001ef1288ec00] ref P L0: 78.3%  9.7%  8.8%  3.2%&#xA;[libx264 @ 000001ef1288ec00] ref B L0: 92.5%  6.0%  1.5%&#xA;[libx264 @ 000001ef1288ec00] ref B L1: 97.1%  2.9%&#xA;[libx264 @ 000001ef1288ec00] kb/s:819.63&#xA;[aac @ 000001ef128f7c80] Qavg: 452.137&#xA;

    &#xA;

    When I use the .on(&#x27;start&#x27;, (cmdline) => console.log(cmdline))} code with the -f hls command, the error "Output format hls is not available" appears, as previously mentioned. But my Console.log looks like this if I run my code without using -f hls command :

    &#xA;

    Without -f hls command

    &#xA;

    await new Promise<void>((resolve, reject) => {&#xA;  ffmpeg(filePath)&#xA;    .outputOptions([&#xA;      `-c:v h264`,&#xA;      `-b:v ${videoBitrate}`,&#xA;      `-c:a aac`,&#xA;      `-b:a ${audioBitrate}`,&#xA;      `-vf scale=${resolution}`,&#xA; &#xA;      `-hls_time 10`,&#xA;      `-hls_list_size 0`,&#xA;      `-hls_segment_filename ${directoryPath}/${segmentFileName}`,&#xA;    ])&#xA;    .output(`${directoryPath}/${outputFileName}`)&#xA;    .on(&#x27;start&#x27;, (cmdline) => console.log(cmdline)) &#xA;    .on("end", () => resolve())&#xA;    .on("error", (err) => reject(err))&#xA;    .run();&#xA;});&#xA;</void>

    &#xA;

    Console.log is :

    &#xA;

    `Starting script&#xA;File saved successfully: C:\Users\asifa\Desktop\Genius Grid\Transcode-service\input\c9fcf43726e617a295b203d5acb7b81658b5f05f80eafc74cee21b053422fef1.mp4&#xA;HLS conversion starting for 256x144&#xA;ffmpeg -i C:\Users\asifa\Desktop\Genius Grid\Transcode-service\input\c9fcf43726e617a295b203d5acb7b81658b5f05f80eafc74cee21b053422fef1.mp4 -y -c:v h264 -b:v 200k -c:a aac -b:a 64k -vf scale=256x144 -hls_time 10 -hls_list_size 0 -hls_segment_filename C:\Users\asifa\Desktop\Genius Grid\Transcode-service\output\hls\c9fcf43726e617a295b203d5acb7b81658b5f05f80eafc74cee21b053422fef1/c9fcf43726e617a295b203d5acb7b81658b5f05f80eafc74cee21b053422fef1_256x144_%03d.ts C:\Users\asifa\Desktop\Genius Grid\Transcode-service\output\hls\c9fcf43726e617a295b203d5acb7b81658b5f05f80eafc74cee21b053422fef1/c9fcf43726e617a295b203d5acb7b81658b5f05f80eafc74cee21b053422fef1_256x144.m3u8&#xA;Error transcoding with FFmpeg: Error: ffmpeg exited with code 2880417800: Unrecognized option &#x27;hls_segment_filename C:\Users\asifa\Desktop\Genius Grid\Transcode-service\output\hls\c9fcf43726e617a295b203d5acb7b81658b5f05f80eafc74cee21b053422fef1/c9fcf43726e617a295b203d5acb7b81658b5f05f80eafc74cee21b053422fef1_256x144_%03d.ts&#x27;.&#xA;Error splitting the argument list: Option not found`&#xA;

    &#xA;

  • How to stream webcam video over RTSP using ffmpeg on Windows 10 ? [closed]

    15 mai 2024, par let me down slowly

    I am trying to stream my laptop's webcam using RTSP protocol using ffmpeg. I am trying to simulate an actual IP Camera. I have already tried different tools already including using VidGear python package, and gstreamer but could not get it working. Note : I am on Windows 10. I have tried this command :

    &#xA;

    ffmpeg -f dshow -s 320x240 -rtbufsize 2147.48M -r 30 -vcodec mjpeg -i video="HD Camera" -f rtsp -rtsp_transport tcp rtsp://localhost:8554/mystream&#xA;

    &#xA;

    It turns on the webcam with but prints these logs to the console :

    &#xA;

    ffmpeg version 7.0-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers&#xA;  built with gcc 13.2.0 (Rev5, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      59.  8.100 / 59.  8.100&#xA;  libavcodec     61.  3.100 / 61.  3.100&#xA;  libavformat    61.  1.100 / 61.  1.100&#xA;  libavdevice    61.  1.100 / 61.  1.100&#xA;  libavfilter    10.  1.100 / 10.  1.100&#xA;  libswscale      8.  1.100 /  8.  1.100&#xA;  libswresample   5.  1.100 /  5.  1.100&#xA;  libpostproc    58.  1.100 / 58.  1.100&#xA;[mjpeg @ 0000026201ae9fc0] unable to decode APP fields: Invalid data found when processing input&#xA;Input #0, dshow, from &#x27;video=HD Camera&#x27;:&#xA;  Duration: N/A, start: 1285415.793302, bitrate: N/A&#xA;  Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 320x240, 30 fps, 30 tbr, 10000k tbn&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg4 (native))&#xA;Press [q] to stop, [?] for help&#xA;[mjpeg @ 0000026201afe9c0] unable to decode APP fields: Invalid data found when processing input&#xA;[swscaler @ 0000026201b5cc40] deprecated pixel format used, make sure you did set range correctly&#xA;[swscaler @ 00000262068c57c0] deprecated pixel format used, make sure you did set range correctly&#xA;[swscaler @ 0000026201b5cc40] deprecated pixel format used, make sure you did set range correctly&#xA;    Last message repeated 1 times&#xA;[mjpeg @ 0000026201afe9c0] unable to decode APP fields: Invalid data found when processing input&#xA;    Last message repeated 8 times&#xA;

    &#xA;

    I tried opening rtsp://localhost:8554/mystream but it shows VLC is unable to open the MRL &#x27;rtsp://localhost:8554/mystream&#x27;. Check the log for details.

    &#xA;

    Killing the running process outputs these additional logs

    &#xA;

    [out#0/rtsp @ 0000026201aeaf80] Could not write header (incorrect codec parameters ?): Immediate exit requested&#xA;[vf#0:0 @ 0000026201af4100] Error sending frames to consumers: Immediate exit requested&#xA;[vf#0:0 @ 0000026201af4100] Task finished with error code: -1414092869 (Immediate exit requested)&#xA;[vf#0:0 @ 0000026201af4100] Terminating thread with return code -1414092869 (Immediate exit requested)&#xA;[out#0/rtsp @ 0000026201aeaf80] Nothing was written into output file, because at least one of its streams received no packets.&#xA;frame=    0 fps=0.0 q=0.0 Lsize=       0KiB time=N/A bitrate=N/A speed=N/A&#xA;Exiting normally, received signal 2.&#xA;

    &#xA;

    Output of the command ffmpeg -list_devices true -f dshow -i dummy :

    &#xA;

      built with gcc 13.2.0 (Rev5, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      59.  8.100 / 59.  8.100&#xA;  libavcodec     61.  3.100 / 61.  3.100&#xA;  libavformat    61.  1.100 / 61.  1.100&#xA;  libavdevice    61.  1.100 / 61.  1.100&#xA;  libavfilter    10.  1.100 / 10.  1.100&#xA;  libswscale      8.  1.100 /  8.  1.100&#xA;  libswresample   5.  1.100 /  5.  1.100&#xA;  libpostproc    58.  1.100 / 58.  1.100&#xA;[dshow @ 00000140f18d4200] "HD Camera" (video)&#xA;[dshow @ 00000140f18d4200]   Alternative name "@device_pnp_\\?\usb#vid_05c8&amp;pid_03ea&amp;mi_00#6&amp;d0a8c55&amp;0&amp;0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"&#xA;[dshow @ 00000140f18d4200] "Microphone (Realtek(R) Audio)" (audio)&#xA;[dshow @ 00000140f18d4200]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{06840D8D-1151-4D9C-B865-2FE01BFB9FD2}"&#xA;[in#0 @ 00000140f18ba640] Error opening input: Immediate exit requested&#xA;Error opening input file dummy.&#xA;

    &#xA;

    Output of the command ffmpeg -f dshow -list_options true -i video="HD Camera" :

    &#xA;

      built with gcc 13.2.0 (Rev5, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      59.  8.100 / 59.  8.100&#xA;  libavcodec     61.  3.100 / 61.  3.100&#xA;  libavformat    61.  1.100 / 61.  1.100&#xA;  libavdevice    61.  1.100 / 61.  1.100&#xA;  libavfilter    10.  1.100 / 10.  1.100&#xA;  libswscale      8.  1.100 /  8.  1.100&#xA;  libswresample   5.  1.100 /  5.  1.100&#xA;  libpostproc    58.  1.100 / 58.  1.100&#xA;[dshow @ 000002670b4c12c0] DirectShow video device options (from video devices)&#xA;[dshow @ 000002670b4c12c0]  Pin "Capture" (alternative pin name "Capture")&#xA;[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=1280x720 fps=30 max s=1280x720 fps=30&#xA;[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=640x480 fps=30 max s=640x480 fps=30&#xA;[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=640x360 fps=30 max s=640x360 fps=30&#xA;[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=352x288 fps=30 max s=352x288 fps=30&#xA;[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=320x240 fps=30 max s=320x240 fps=30&#xA;[dshow @ 000002670b4c12c0]   vcodec=mjpeg  min s=176x144 fps=30 max s=176x144 fps=30&#xA;[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=1280x720 fps=10 max s=1280x720 fps=10&#xA;[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=640x480 fps=30 max s=640x480 fps=30&#xA;[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=640x360 fps=30 max s=640x360 fps=30&#xA;[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=352x288 fps=30 max s=352x288 fps=30&#xA;[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=320x240 fps=30 max s=320x240 fps=30&#xA;[dshow @ 000002670b4c12c0]   pixel_format=yuyv422  min s=176x144 fps=30 max s=176x144 fps=30&#xA;[in#0 @ 000002670b4aa200] Error opening input: Immediate exit requested&#xA;Error opening input file video=HD Camera.&#xA;

    &#xA;

    Please help me solve the issue or suggest a better approach.

    &#xA;