Recherche avancée

Médias (1)

Mot : - Tags -/copyleft

Autres articles (58)

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

  • Taille des images et des logos définissables

    9 février 2011, par

    Dans beaucoup d’endroits du site, logos et images sont redimensionnées pour correspondre aux emplacements définis par les thèmes. L’ensemble des ces tailles pouvant changer d’un thème à un autre peuvent être définies directement dans le thème et éviter ainsi à l’utilisateur de devoir les configurer manuellement après avoir changé l’apparence de son site.
    Ces tailles d’images sont également disponibles dans la configuration spécifique de MediaSPIP Core. La taille maximale du logo du site en pixels, on permet (...)

  • Diogene : création de masques spécifiques de formulaires d’édition de contenus

    26 octobre 2010, par

    Diogene est un des plugins ? SPIP activé par défaut (extension) lors de l’initialisation de MediaSPIP.
    A quoi sert ce plugin
    Création de masques de formulaires
    Le plugin Diogène permet de créer des masques de formulaires spécifiques par secteur sur les trois objets spécifiques SPIP que sont : les articles ; les rubriques ; les sites
    Il permet ainsi de définir en fonction d’un secteur particulier, un masque de formulaire par objet, ajoutant ou enlevant ainsi des champs afin de rendre le formulaire (...)

Sur d’autres sites (7556)

  • ffmpeg streaming fails to stream over internet to twitch.tv

    15 avril 2021, par josh joyer

    I did already streaming to twitch.tv with command :

    


    ffmpeg -stream_loop -1 -i 9stream.wav 
-f dshow -i audio="mic"
 -f dshow -i audio="realTek" 
-filter_complex "[0:a]volume=2[a0];[1:a]volume=1.5[a1];[2:a]volume=1.5[a2];[a0][a1][a2]amix=inputs=3"
 -f dshow -i video="USB2.0 PC CAMERA" 
-ac 1 -ar 11025 -acodec libmp3lame -c:v libx264 -b:v 100k -f flv -s 80x120 
rtmp://live.twitch.tv/app/live_streamingKey


    


    It was most advanced command that I used to stream online.

    


    (I do not know how to make enter in here so I put double enter)

    


    9stream.wav was played in loop as background music

    


    microphone was added

    


    stereoMix named realTek was the playback of system sounds

    


    volume was adjusted and all sounds mixed into one stream

    


    camera view was added

    


    THEN network flow was reduced by sending only one channel with low frequency of 11025 with lowest

    


    possible data size made by mp3 encoder and libx264 was used to encode video in png files.

    


    It was working fine SO I decided to make final version

    


    (this one worked with all sounds(background music,microphone,system sounds) and camera)

    


    Final version was about adding screen view and logo.

    


    I succeded writing everything to disc with command :

    


    ffmpeg 
-stream_loop -1 -i 9stream.wav 
-f dshow -i audio="mic" 
-f dshow -i audio="stereoMixRealtek" 
-i camera.png 
-f gdigrab -framerate 1 -i desktop 
-f dshow -framerate 15 -i video="USB2.0 PC CAMERA" 
-filter_complex "[0:a]volume=2[a0];[1:a]volume=1.5[a1];[2:a]volume=1.5[a2];
[a0][a1][a2]amix=inputs=3[aMix];
[4:v]scale=200:-1[v4];[5:v]scale=50:-1[v5];
[v4][v5]overlay=(W-w)-5:(H-h)-5[vScreenCam];
[vScreenCam][3:v]overlay=5:5[v]" 
-map "[v]" -map "[aMix]" -ac 1 -ar 11025 -c:a libmp3lame -r 1 -c:v libx264 output.mkv


    


    That was

    


    background music

    


    microphone

    


    system sounds

    


    logo picture

    


    screen view

    


    camera

    


    adjusting sound volume

    


    mixing sounds

    


    reducing size of screen view and camera view

    


    overlaying reduced camera view over reduced screen view

    


    adding logo

    


    choosing final view, final mixed sounds,

    


    reducing data size to one channel, reducing sample frequency,

    


    choosing mp3 codec to reduce final data size,

    


    choosing minimal framerate of one per second to reduce data size

    


    choosing libx264 codec for video.

    


    THEN I tried to use final command for network streaming with slight modification :

    


    ffmpeg 
-stream_loop -1 -i 9stream.wav 
-f dshow -i audio="mic" 
-f dshow -i audio="stereo mix" 
-i camera.png 
-f gdigrab -framerate 1 -i desktop 
-f dshow -framerate 15 -i video="USB2.0 PC CAMERA" 
-filter_complex "[0:a]volume=2[a0];[1:a]volume=1.5[a1];[2:a]volume=1.5[a2];
[a0][a1][a2]amix=inputs=3[aMix];
[4:v]scale=200:-1[v4];[5:v]scale=50:-1[v5];
[v4][v5]overlay=(W-w)-5:(H-h)-5[vScreenCam];[vScreenCam][3:v]overlay=5:5[v]" 
-map "[v]" -map "[aMix]" 
-ac 1 -ar 11025 -c:a libmp3lame -r 1 -c:v libx264 -b:v 100k -b:a 10k -f flv rtmp://live.twitch.tv/app/live_streamingKey


    


    I added parameter
-b:v 100k to reduce video flow
-b:a 10k to reduce sound flow
-f flv to be good for twitch.tv otherwise it would not accept stream

    


    BUT ffmpeg is always stopping sending data with message like this :

    


    testosteron_@testosteron MINGW64 ~/Desktop/2021b/magisterka/ScreenRecorderXi/ScreenRecorderXi/bin
$ cmd
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. Wszelkie prawa zastrze▒one.

C:\Users\testosteron_\Desktop\2021b\magisterka\ScreenRecorderXi\ScreenRecorderXi\bin>ffmpeg -stream_loop -1 -i 9stream.wav -f dshow -i audio="@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{5B4DB0B5-B645-4AFA-930D-4710AAF753DB}" -f dshow -i audio="@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{ADECEC1D-C3CC-4BAE-8516-752251B8B63F}" -i camera.png -f gdigrab -framerate 1 -i desktop -f dshow -framerate 15 -i video="USB2.0 PC CAMERA" -filter_complex "[0:a]volume=2[a0];[1:a]volume=1.5[a1];[2:a]volume=1.5[a2];[a0][a1][a2]amix=inputs=3[aMix];[4:v]scale=200:-1[v4];[5:v]scale=50:-1[v5];[v4][v5]overlay=(W-w)-5:(H-h)-5[vScreenCam];[vScreenCam][3:v]overlay=5:5[v]" -map "[v]" -map "[aMix]" -ac 1 -ar 11025 -c:a libmp3lame -r 1 -c:v libx264 -b:v 100k -b:a 10k -f flv rtmp://live.twitch.tv/app/live_674912043_oAwGnACTndHyeZnlA6scLegm8gaxwf
ffmpeg -stream_loop -1 -i 9stream.wav -f dshow -i audio="@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{5B4DB0B5-B645-4AFA-930D-4710AAF753DB}" -f dshow -i audio="@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{ADECEC1D-C3CC-4BAE-8516-752251B8B63F}" -i camera.png -f gdigrab -framerate 1 -i desktop -f dshow -framerate 15 -i video="USB2.0 PC CAMERA" -filter_complex "[0:a]volume=2[a0];[1:a]volume=1.5[a1];[2:a]volume=1.5[a2];[a0][a1][a2]amix=inputs=3[aMix];[4:v]scale=200:-1[v4];[5:v]scale=50:-1[v5];[v4][v5]overlay=(W-w)-5:(H-h)-5[vScreenCam];[vScreenCam][3:v]overlay=5:5[v]" -map "[v]" -map "[aMix]" -ac 1 -ar 11025 -c:a libmp3lame -r 1 -c:v libx264 -b:v 100k -b:a 10k -f flv rtmp://live.twitch.tv/app/live_674912043_oAwGnACTndHyeZnlA6scLegm8gaxwf
ffmpeg version git-2020-08-02-b48397e Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.1 (GCC) 20200726
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --enable-librav1e --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 57.100 / 56. 57.100
  libavcodec     58. 99.100 / 58. 99.100
  libavformat    58. 49.100 / 58. 49.100
  libavdevice    58. 11.101 / 58. 11.101
  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
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, wav, from '9stream.wav':
  Metadata:
    encoder         : Lavf58.49.100
  Duration: 00:00:13.48, bitrate: 1411 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, dshow, from 'audio=@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{5B4DB0B5-B645-4AFA-930D-4710AAF753DB}':
  Duration: N/A, start: 209609.948000, bitrate: 1411 kb/s
    Stream #1:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
Guessed Channel Layout for Input Stream #2.0 : stereo
Input #2, dshow, from 'audio=@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{ADECEC1D-C3CC-4BAE-8516-752251B8B63F}':
  Duration: N/A, start: 209610.502000, bitrate: 1411 kb/s
    Stream #2:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
Input #3, png_pipe, from 'camera.png':
  Duration: N/A, bitrate: N/A
    Stream #3:0: Video: png, rgba(pc), 32x32 [SAR 3779:3779 DAR 1:1], 25 tbr, 25 tbn, 25 tbc
[gdigrab @ 0000009a3f019700] Capturing whole desktop as 1280x1024x32 at (0,0)
[gdigrab @ 0000009a3f019700] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #4, gdigrab, from 'desktop':
  Duration: N/A, start: 1618506176.140738, bitrate: 41943 kb/s
    Stream #4:0: Video: bmp, bgra, 1280x1024, 41943 kb/s, 1 fps, 1000k tbr, 1000k tbn, 1000k tbc
Input #5, dshow, from 'video=USB2.0 PC CAMERA':
  Duration: N/A, start: 209613.583000, bitrate: N/A
    Stream #5:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 15 fps, 15 tbr, 10000k tbn, 10000k tbc
[dshow @ 0000009a3f034900] real-time buffer [USB2.0 PC CAMERA] [video input] too full or near too full (101% of size: 3041280 [rtbufsize parameter])! frame dropped!
    Last message repeated 9 times
Stream mapping:
  Stream #0:0 (pcm_s16le) -> volume
  Stream #1:0 (pcm_s16le) -> volume
  Stream #2:0 (pcm_s16le) -> volume
  Stream #3:0 (png) -> overlay:overlay
  Stream #4:0 (bmp) -> scale
  Stream #5:0 (rawvideo) -> scale
  overlay -> Stream #0:0 (libx264)
  amix -> Stream #0:1 (libmp3lame)
Press [q] to stop, [?] for help
[dshow @ 0000009a3efd5b80] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[dshow @ 0000009a406fb280] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[libx264 @ 0000009a4082ddc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 SlowShuffle
[libx264 @ 0000009a4082ddc0] profile High, level 1.1, 4:2:0, 8-bit
[libx264 @ 0000009a4082ddc0] 264 - core 161 - 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=5 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=abr mbtree=1 bitrate=100 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://live.twitch.tv/app/live_streamingKey':
  Metadata:
    encoder         : Lavf58.49.100
    Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p(progressive), 200x160, q=-1--1, 100 kb/s, 1 fps, 1k tbn, 1 tbc (default)
    Metadata:
      encoder         : Lavc58.99.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/100000 buffer size: 0 vbv_delay: N/A
    Stream #0:1: Audio: mp3 (libmp3lame) ([2][0][0][0] / 0x0002), 11025 Hz, mono, fltp, 10 kb/s (default)
    Metadata:
      encoder         : Lavc58.99.100 libmp3lame
frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   frame=    1 fps=1.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   frame=    1 fps=0.7 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   frame=    3 fps=1.5 q=0.0 size=       0kB time=00:00:03.08 bitrate=   1.0kbits/sframe=    4 fps=1.6 q=0.0 size=       0kB time=00:00:03.66 bitrate=   0.8kbits/sframe=    4 fps=1.3 q=0.0 size=       0kB time=00:00:03.66 bitrate=   0.8kbits/sframe=    5 fps=1.4 q=0.0 size=       0kB time=00:00:04.65 bitrate=   0.7kbits/sframe=    5 fps=1.2 q=0.0 size=       0kB time=00:00:04.65 bitrate=   0.7kbits/sframe=    6 fps=1.3 q=0.0 size=       0kB time=00:00:05.64 bitrate=   0.5kbits/sframe=    6 fps=1.2 q=0.0 size=       0kB time=00:00:05.64 bitrate=   0.5kbits/sframe=    7 fps=1.3 q=0.0 size=       0kB time=00:00:06.64 bitrate=   0.5kbits/sframe=    7 fps=1.2 q=0.0 size=       0kB time=00:00:06.64 bitrate=   0.5kbits/sframe=    8 fps=1.2 q=0.0 size=       0kB time=00:00:07.58 bitrate=   0.4kbits/sframe=    8 fps=1.1 q=0.0 size=       0kB time=00:00:07.58 bitrate=   0.4kbits/sframe=    9 fps=1.2 q=0.0 size=       0kB time=00:00:08.57 bitrate=   0.4kbits/sframe=    9 fps=1.1 q=0.0 size=       0kB time=00:00:08.57 bitrate=   0.4kbits/sframe=   10 fps=1.2 q=0.0 size=       0kB time=00:00:09.56 bitrate=   0.3kbits/sframe=   10 fps=1.1 q=0.0 size=       0kB time=00:00:09.56 bitrate=   0.3kbits/sframe=   11 fps=1.1 q=0.0 size=       1kB time=00:00:10.55 bitrate=   0.9kbits/sframe=   11 fps=1.1 q=0.0 size=       1kB time=00:00:10.55 bitrate=   0.9kbits/sframe=   12 fps=1.1 q=0.0 size=       2kB time=00:00:11.55 bitrate=   1.7kbits/sframe=   12 fps=1.1 q=0.0 size=       2kB time=00:00:11.55 bitrate=   1.7kbits/sframe=   13 fps=1.1 q=0.0 size=       4kB time=00:00:12.59 bitrate=   2.5kbits/sframe=   13 fps=1.1 q=0.0 size=       4kB time=00:00:12.59 bitrate=   2.5kbits/sframe=   14 fps=1.1 q=0.0 size=       5kB time=00:00:13.58 bitrate=   3.0kbits/sframe=   14 fps=1.1 q=0.0 size=       5kB time=00:00:13.58 bitrate=   3.0kbits/sframe=   15 fps=1.1 q=0.0 size=       6kB time=00:00:14.58 bitrate=   3.5kbits/sframe=   15 fps=1.1 q=0.0 size=       6kB time=00:00:14.58 bitrate=   3.5kbits/sframe=   16 fps=1.1 q=0.0 size=       8kB time=00:00:15.57 bitrate=   4.0kbits/sframe=   16 fps=1.1 q=0.0 size=       8kB time=00:00:15.57 bitrate=   4.0kbits/sframe=   17 fps=1.1 q=0.0 size=       9kB time=00:00:16.56 bitrate=   4.4kbits/sframe=   17 fps=1.1 q=0.0 size=       9kB time=00:00:16.56 bitrate=   4.4kbits/sframe=   18 fps=1.1 q=0.0 size=      10kB time=00:00:17.55 bitrate=   4.7kbits/sframe=   18 fps=1.0 q=0.0 size=      10kB time=00:00:17.55 bitrate=   4.7kbits/sframe=   19 fps=1.1 q=0.0 size=      11kB time=00:00:18.55 bitrate=   5.0kbits/sframe=   19 fps=1.0 q=0.0 size=      11kB time=00:00:18.55 bitrate=   5.0kbits/sframe=   20 fps=1.1 q=0.0 size=      13kB time=00:00:19.54 bitrate=   5.3kbits/sframe=   20 fps=1.0 q=0.0 size=      13kB time=00:00:19.54 bitrate=   5.3kbits/sframe=   21 fps=1.1 q=0.0 size=      14kB time=00:00:20.58 bitrate=   5.6kbits/sframe=   21 fps=1.0 q=0.0 size=      14kB time=00:00:20.58 bitrate=   5.6kbits/sframe=   22 fps=1.1 q=0.0 size=      15kB time=00:00:21.58 bitrate=   5.8kbits/sframe=   22 fps=1.0 q=0.0 size=      15kB time=00:00:21.58 bitrate=   5.8kbits/sframe=   23 fps=1.1 q=0.0 size=      17kB time=00:00:22.57 bitrate=   6.0kbits/sframe=   23 fps=1.0 q=0.0 size=      17kB time=00:00:22.57 bitrate=   6.0kbits/sframe=   24 fps=1.1 q=0.0 size=      18kB time=00:00:23.56 bitrate=   6.2kbits/sframe=   24 fps=1.0 q=0.0 size=      18kB time=00:00:23.56 bitrate=   6.2kbits/sframe=   25 fps=1.1 q=0.0 size=      19kB time=00:00:24.56 bitrate=   6.4kbits/sframe=   25 fps=1.0 q=0.0 size=      19kB time=00:00:24.56 bitrate=   6.4kbits/sframe=   26 fps=1.1 q=0.0 size=      20kB time=00:00:25.55 bitrate=   6.5kbits/sframe=   26 fps=1.0 q=0.0 size=      20kB time=00:00:25.55 bitrate=   6.5kbits/sframe=   27 fps=1.0 q=0.0 size=      22kB time=00:00:26.54 bitrate=   6.7kbits/sframe=   27 fps=1.0 q=0.0 size=      22kB time=00:00:26.54 bitrate=   6.7kbits/sframe=   28 fps=1.0 q=0.0 size=      23kB time=00:00:27.58 bitrate=   6.8kbits/sframe=   28 fps=1.0 q=0.0 size=      23kB time=00:00:27.58 bitrate=   6.8kbits/sframe=   29 fps=1.0 q=0.0 size=      24kB time=00:00:28.58 bitrate=   6.9kbits/sframe=   30 fps=1.1 q=0.0 size=      25kB time=00:00:29.00 bitrate=   7.0kbits/sframe=   30 fps=1.0 q=0.0 size=      25kB time=00:00:29.57 bitrate=   7.0kbits/sframe=   30 fps=1.0 q=0.0 size=      25kB time=00:00:29.57 bitrate=   7.0kbits/sframe=   31 fps=1.0 q=0.0 size=      27kB time=00:00:30.56 bitrate=   7.2kbits/sframe=   32 fps=1.1 q=0.0 size=      27kB time=00:00:30.56 bitrate=   7.2kbits/sframe=   32 fps=1.0 q=0.0 size=      28kB time=00:00:31.56 bitrate=   7.3kbits/sframe=   33 fps=1.1 q=0.0 size=      29kB time=00:00:32.55 bitrate=   7.4kbits/sframe=   33 fps=1.0 q=0.0 size=      29kB time=00:00:32.55 bitrate=   7.4kbits/sframe=   33 fps=1.0 q=0.0 size=      29kB time=00:00:32.55 bitrate=   7.4kbits/sframe=   34 fps=1.0 q=0.0 size=      31kB time=00:00:33.54 bitrate=   7.4kbits/sframe=   35 fps=1.1 q=0.0 size=      31kB time=00:00:33.96 bitrate=   7.5kbits/sframe=   35 fps=1.0 q=0.0 size=      32kB time=00:00:34.53 bitrate=   7.5kbits/sframe=   36 fps=1.0 q=0.0 size=      33kB time=00:00:35.58 bitrate=   7.6kbits/sframe=   36 fps=1.0 q=0.0 size=      33kB time=00:00:35.58 bitrate=   7.6kbits/sframe=   36 fps=1.0 q=0.0 size=      33kB time=00:00:35.58 bitrate=   7.6kbits/sframe=   37 fps=1.0 q=0.0 size=      34kB time=00:00:36.57 bitrate=   7.7kbits/sframe=   38 fps=1.0 q=0.0 size=      36kB time=00:00:37.56 bitrate=   7.8kbits/sframe=   38 fps=1.0 q=0.0 size=      36kB time=00:00:37.56 bitrate=   7.8kbits/sframe=   39 fps=1.0 q=0.0 size=      37kB time=00:00:38.56 bitrate=   7.8kbits/sframe=   39 fps=1.0 q=0.0 size=      37kB time=00:00:38.56 bitrate=   7.8kbits/sframe=   40 fps=1.0 q=0.0 size=      38kB time=00:00:39.55 bitrate=   7.9kbits/sframe=   40 fps=1.0 q=0.0 size=      38kB time=00:00:39.55 bitrate=   7.9kbits/sframe=   41 fps=1.0 q=0.0 size=      39kB time=00:00:40.54 bitrate=   8.0kbits/sframe=   41 fps=1.0 q=0.0 size=      39kB time=00:00:40.54 bitrate=   8.0kbits/sframe=   42 fps=1.0 q=0.0 size=      41kB time=00:00:41.59 bitrate=   8.0kbits/sframe=   42 fps=1.0 q=0.0 size=      41kB time=00:00:41.59 bitrate=   8.0kbits/sframe=   43 fps=1.0 q=0.0 size=      42kB time=00:00:42.58 bitrate=   8.1kbits/sframe=   43 fps=1.0 q=0.0 size=      42kB time=00:00:42.58 bitrate=   8.1kbits/sframe=   44 fps=1.0 q=0.0 size=      43kB time=00:00:43.57 bitrate=   8.1kbits/sframe=   44 fps=1.0 q=0.0 size=      43kB time=00:00:43.57 bitrate=   8.1kbits/sframe=   45 fps=1.0 q=0.0 size=      45kB time=00:00:44.56 bitrate=   8.2kbits/sframe=   45 fps=1.0 q=0.0 size=      45kB time=00:00:44.56 bitrate=   8.2kbits/sframe=   46 fps=1.0 q=0.0 size=      46kB time=00:00:45.56 bitrate=   8.2kbits/sframe=   46 fps=1.0 q=0.0 size=      46kB time=00:00:45.56 bitrate=   8.2kbits/sframe=   47 fps=1.0 q=0.0 size=      47kB time=00:00:46.55 bitrate=   8.3kbits/sframe=   47 fps=1.0 q=0.0 size=      47kB time=00:00:46.55 bitrate=   8.3kbits/sframe=   48 fps=1.0 q=0.0 size=      48kB time=00:00:47.54 bitrate=   8.3kbits/sframe=   48 fps=1.0 q=0.0 size=      48kB time=00:00:47.54 bitrate=   8.3kbits/sframe=   49 fps=1.0 q=0.0 size=      50kB time=00:00:48.59 bitrate=   8.4kbits/sframe=   49 fps=1.0 q=0.0 size=      50kB time=00:00:48.59 bitrate=   8.4kbits/s[flv @ 0000009a40865940] Packets poorly interleaved, failed to avoid negative timestamp -3900 in stream 0.
Try -max_interleave_delta 0 as a possible workaround.
[flv @ 0000009a40865940] Packets are not in the proper order with respect to DTS
av_interleaved_write_frame(): Invalid argument
[flv @ 0000009a40865940] Failed to update header with correct duration.
[flv @ 0000009a40865940] Failed to update header with correct filesize.
frame=   50 fps=1.0 q=6.0 Lsize=      63kB time=00:00:49.11 bitrate=  10.5kbits/s speed=   1x
video:27kB audio:48kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0000009a4082ddc0] frame I:1     Avg QP: 0.56  size: 27197
[libx264 @ 0000009a4082ddc0] frame P:15    Avg QP: 0.76  size:  2567
[libx264 @ 0000009a4082ddc0] frame B:34    Avg QP: 3.98  size:  1481
[libx264 @ 0000009a4082ddc0] consecutive B-frames:  8.0%  0.0% 12.0% 80.0%
[libx264 @ 0000009a4082ddc0] mb I  I16..4: 13.1% 13.8% 73.1%
[libx264 @ 0000009a4082ddc0] mb P  I16..4:  0.0%  0.1%  0.8%  P16..4: 17.5%  5.9%  4.2%  0.0%  0.0%    skip:71.5%
[libx264 @ 0000009a4082ddc0] mb B  I16..4:  0.0%  0.0%  0.3%  B16..8: 12.1%  4.2%  2.4%  direct: 6.3%  skip:74.7%  L0:42.9% L1:41.8% BI:15.4%
[libx264 @ 0000009a4082ddc0] final ratefactor: -7.50
[libx264 @ 0000009a4082ddc0] 8x8 transform intra:12.3% inter:14.5%
[libx264 @ 0000009a4082ddc0] coded y,uvDC,uvAC intra: 95.2% 96.9% 96.9% inter: 16.0% 14.9% 14.8%
[libx264 @ 0000009a4082ddc0] i16 v,h,dc,p: 26% 32% 32% 11%
[libx264 @ 0000009a4082ddc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  8% 40% 14%  8%  1%  2%  1%  1% 25%
[libx264 @ 0000009a4082ddc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 45%  7%  4%  5%  3%  7%  3%  9%
[libx264 @ 0000009a4082ddc0] i8c dc,h,v,p: 36% 40% 18%  6%
[libx264 @ 0000009a4082ddc0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0000009a4082ddc0] ref P L0: 65.2%  2.2% 19.9% 12.7%
[libx264 @ 0000009a4082ddc0] ref B L0: 71.8% 23.0%  5.2%
[libx264 @ 0000009a4082ddc0] ref B L1: 88.2% 11.8%
[libx264 @ 0000009a4082ddc0] kb/s:17.86
Conversion failed!


    


    Main message from above was :

    


    [flv @ 0000009a40865940] Packets poorly interleaved, failed to avoid negative timestamp -3900 in stream 0.


    


    It was problem to stream 0 so it was mixed sounds stream BUT earlier it was fine with mixing

    


    and sending mix over internet BUT after I added screen view and scaling it failed to work.

    


    What is problem ?

    


    How to fix it ?

    


    Since I was able to do this to stream to disc I would assume that

    


    computer processing power is enough. Since I was able to stream over internet mixed sounds I

    


    would assume that it is not problem here. So the problem must be with sending

    


    screen view. BUT I put framerate 1 per second and downsized its resolution. I compressed

    


    sounds as much as I could. I added -b:a and -b:v commands to reduce network flow.

    


    WHAT ELSE COULD I DO TO FIX IT ?

    


  • Emscripten and Web Audio API

    29 avril 2015, par Multimedia Mike — HTML5

    Ha ! They said it couldn’t be done ! Well, to be fair, I said it couldn’t be done. Or maybe that I just didn’t have any plans to do it. But I did it– I used Emscripten to cross-compile a CPU-intensive C/C++ codebase (Game Music Emu) to JavaScript. Then I leveraged the Web Audio API to output audio and visualize the audio using an HTML5 canvas.

    Want to see it in action ? Here’s a demonstration. Perhaps I will be able to expand the reach of my Game Music site when I can drop the odd Native Client plugin. This JS-based player works great on Chrome, Firefox, and Safari across desktop operating systems.

    But this endeavor was not without its challenges.

    Programmatically Generating Audio
    First, I needed to figure out the proper method for procedurally generating audio and making it available to output. Generally, there are 2 approaches for audio output :

    1. Sit in a loop and generate audio, writing it out via a blocking audio call
    2. Implement a callback that the audio system can invoke in order to generate more audio when needed

    Option #1 is not a good idea for an event-driven language like JavaScript. So I hunted through the rather flexible Web Audio API for a method that allowed something like approach #2. Callbacks are everywhere, after all.

    I eventually found what I was looking for with the ScriptProcessorNode. It seems to be intended to apply post-processing effects to audio streams. A program registers a callback which is passed configurable chunks of audio for processing. I subverted this by simply overwriting the input buffers with the audio generated by the Emscripten-compiled library.

    The ScriptProcessorNode interface is fairly well documented and works across multiple browsers. However, it is already marked as deprecated :

    Note : As of the August 29 2014 Web Audio API spec publication, this feature has been marked as deprecated, and is soon to be replaced by Audio Workers.

    Despite being marked as deprecated for 8 months as of this writing, there exists no appreciable amount of documentation for the successor API, these so-called Audio Workers.

    Vive la web standards !

    Visualize This
    The next problem was visualization. The Web Audio API provides the AnalyzerNode API for accessing both time and frequency domain data from a running audio stream (and fetching the data as both unsigned bytes or floating-point numbers, depending on what the application needs). This is a pretty neat idea. I just wish I could make the API work. The simple demos I could find worked well enough. But when I wired up a prototype to fetch and visualize the time-domain wave, all I got were center-point samples (an array of values that were all 128).

    Even if the API did work, I’m not sure if it would have been that useful. Per my reading of the AnalyserNode API, it only returns data as a single channel. Why would I want that ? My application supports audio with 2 channels. I want 2 channels of data for visualization.

    How To Synchronize
    So I rolled my own visualization solution by maintaining a circular buffer of audio when samples were being generated. Then, requestAnimationFrame() provided the rendering callbacks. The next problem was audio-visual sync. But that certainly is not unique to this situation– maintaining proper A/V sync is a perennial puzzle in real-time multimedia programming. I was able to glean enough timing information from the environment to achieve reasonable A/V sync (verify for yourself).

    Pause/Resume
    The next problem I encountered with the Web Audio API was pause/resume facilities, or the lack thereof. For all its bells and whistles, the API’s omission of such facilities seems most unusual, as if the design philosophy was, “Once the user starts playing audio, they will never, ever have cause to pause the audio.”

    Then again, I must understand that mine is not a use case that the design committee considered and I’m subverting the API in ways the designers didn’t intend. Typical use cases for this API seem to include such workloads as :

    • Downloading, decoding, and playing back a compressed audio stream via the network, applying effects, and visualizing the result
    • Accessing microphone input, applying effects, visualizing, encoding and sending the data across the network
    • Firing sound effects in a gaming application
    • MIDI playback via JavaScript (this honestly amazes me)

    What they did not seem to have in mind was what I am trying to do– synthesize audio in real time.

    I implemented pause/resume in a sub-par manner : pausing has the effect of generating 0 values when the ScriptProcessorNode callback is invoked, while also canceling any animation callbacks. Thus, audio output is technically still occurring, it’s just that the audio is pure silence. It’s not a great solution because CPU is still being used.

    Future Work
    I have a lot more player libraries to port to this new system. But I think I have a good framework set up.

  • ffmpeg stream Windows 7 desktop to Youtube give invalid argument

    11 juin 2021, par TenG

    I am experimenting with live streaming my Windows 7 desktop to YouTube.

    


    Firstly the list of devices :

    


    ffmpeg-N-100616-gca21cb1e36-win64-gpl\bin\ffmpeg.exe -list_devices true -f dshow -i dummy

    


    Gives :

    


    ffmpeg version N-100616-gca21cb1e36 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 9.3-win32 (GCC) 20200320
  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --a
rch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv
--enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-open
cl --enable-libvmaf --disable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-li
bdavs2 --enable-ffnvcodec --enable-cuda-llvm --disable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-li
bopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --en
able-libopenjpeg --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-
libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-li
bxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp
  libavutil      56. 63.100 / 56. 63.100
  libavcodec     58.116.100 / 58.116.100
  libavformat    58. 65.101 / 58. 65.101
  libavdevice    58. 11.103 / 58. 11.103
  libavfilter     7. 95.100 /  7. 95.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100
[dshow @ 000000000052ca00] DirectShow video devices (some may be both video and audio devices)
[dshow @ 000000000052ca00]  "VF0700 Live! Cam Chat HD"
[dshow @ 000000000052ca00]     Alternative name "@device_pnp_\\?\usb#vid_041e&pid_4088&mi_00#7&b015b04&0&0000#{65e8773d-8f56-11d0-a3
b9-00a0c9223196}\global"
[dshow @ 000000000052ca00]  "UScreenCapture"
[dshow @ 000000000052ca00]     Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\UScreenCapture"
[dshow @ 000000000052ca00]  "screen-capture-recorder"
[dshow @ 000000000052ca00]     Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{4EA69364-2C8A-4AE6-A561-56E4B504
4439}"
[dshow @ 000000000052ca00] DirectShow audio devices
[dshow @ 000000000052ca00]  "Microphone (VF0700 Live! Cam Ch"
[dshow @ 000000000052ca00]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\Microphone (VF0700 Live! Cam Ch"
[dshow @ 000000000052ca00]  "virtual-audio-capturer"
[dshow @ 000000000052ca00]     Alternative name "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{8E146464-DB61-4309-AFA1-3578E927
E935}"
dummy: Immediate exit requested


    


    ffmpeg-N-100616-gca21cb1e36-win64-gpl\bin\ffmpeg.exe -list_devices true -f dshow -i dummy

    


    gives :

    


    ffmpeg version 4.3.1-2021-01-01-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enab
le-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libss
h --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-li
brav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --en
able-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-
amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libm
fx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-
libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --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
  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
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[dshow @ 0000000000485ac0] DirectShow video devices (some may be both video and audio devices)
[dshow @ 0000000000485ac0]  "VF0700 Live! Cam Chat HD"
[dshow @ 0000000000485ac0]     Alternative name "@device_pnp_\\?\usb#vid_041e&pid_4088&mi_00#7&b015b04&0&0000#{65e8773d-8f56-11d0-a3
b9-00a0c9223196}\global"
[dshow @ 0000000000485ac0]  "UScreenCapture"
[dshow @ 0000000000485ac0]     Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\UScreenCapture"
[dshow @ 0000000000485ac0]  "screen-capture-recorder"
[dshow @ 0000000000485ac0]     Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{4EA69364-2C8A-4AE6-A561-56E4B504
4439}"
[dshow @ 0000000000485ac0] DirectShow audio devices
[dshow @ 0000000000485ac0]  "Microphone (VF0700 Live! Cam Ch"
[dshow @ 0000000000485ac0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\Microphone (VF0700 Live! Cam Ch"
[dshow @ 0000000000485ac0]  "virtual-audio-capturer"
[dshow @ 0000000000485ac0]     Alternative name "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{8E146464-DB61-4309-AFA1-3578E927
E935}"
dummy: Immediate exit requested


    


    Now trying to live stream with the command :

    


    ffmpeg-N-100616-gca21cb1e36-win64-gpl\bin\ffmpeg.exe -f dshow -i video='screen-capture-recorder':audio='Microphone (VF0700 Live! Cam Ch' -r 24 -s 1920x1080 -qmin 3 'rtmp://a.rtmp.youtube.com:1935/live2/the-stream-key'

    


    I get :

    


    ffmpeg version 4.3.1-2021-01-01-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10.2.0 (Rev5, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enab
le-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libss
h --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-li
brav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --en
able-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-
amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libm
fx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-
libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --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
  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
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
leaving aero onGuessed Channel Layout for Input Stream #0.1 : stereo
Input #0, dshow, from 'video=screen-capture-recorder:audio=Microphone (VF0700 Live! Cam Ch':
  Duration: N/A, start: 758394.360000, bitrate: N/A
    Stream #0:0: Video: rawvideo, bgr0, 1920x1080, 30 fps, 30 tbr, 10000k tbn, 10000k tbc
    Stream #0:1: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
[NULL @ 00000000006645c0] Unable to find a suitable output format for 'rtmp://a.rtmp.youtube.com:1935/live2/the-stream-key
'
rtmp://a.rtmp.youtube.com:1935/live2/the-stream-key: Invalid argument
[dshow @ 0000000000607400] real-time buffer [screen-capture-recorder] [video input] too full or near too full (545% of size: 3041280
 [rtbufsize parameter])! frame dropped!
    Last message repeated 5 times



    


    In short the errors are :

    


    [NULL @ 00000000006645c0] Unable to find a suitable output format for 'rtmp://a.rtmp.youtube.com:1935/live2/the-stream-key
'
rtmp://a.rtmp.youtube.com:1935/live2/the-stream-key: Invalid argument
[dshow @ 0000000000607400] real-time buffer [screen-capture-recorder] [video input] too full or near too full (545% of size: 3041280


    


    I have tried with and without the :1935 port number, with ffmpeg_x64.exe but no difference. Is the stream key the invalid argument or something else ?