Recherche avancée

Médias (9)

Mot : - Tags -/soundtrack

Autres articles (69)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • Installation en mode ferme

    4 février 2011, par

    Le mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
    C’est la méthode que nous utilisons sur cette même plateforme.
    L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
    Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)

  • 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 à (...)

Sur d’autres sites (8324)

  • How to play synchronised multichannel Audio and Video in a C# WPF application ?

    27 mars 2019, par AlexS

    I have video of approximate length 2 mins, and i need to be able to switch between audio streams accompanying the video during playback and even apply varying digital filtering and gain changes to the active audio stream during playback.

    NAudio can cope with the mutlichannel audio, filtering and switching between streams, but there is no support for synchronization with a video.

    How do programmers achieve synchronization, without embedding the audio into the video container directly ?

    Thanks

  • Parsing The Clue Chronicles

    30 décembre 2018, par Multimedia Mike — Game Hacking

    A long time ago, I procured a 1999 game called Clue Chronicles : Fatal Illusion, based on the classic board game Clue, a.k.a. Cluedo. At the time, I was big into collecting old, unloved PC games so that I could research obscure multimedia formats.



    Surveying the 3 CD-ROMs contained in the box packaging revealed only Smacker (SMK) videos for full motion video which was nothing new to me or the multimedia hacking community at the time. Studying the mix of data formats present on the discs, I found a selection of straightforward formats such as WAV for audio and BMP for still images. I generally find myself more fascinated by how computer games are constructed rather than by playing them, and this mix of files has always triggered a strong “I could implement a new engine for this !” feeling in me, perhaps as part of the ScummVM project which already provides the core infrastructure for reimplementing engines for 2D adventure games.

    Tying all of the assets together is a custom high-level programming language. I have touched on this before in a blog post over a decade ago. The scripts are in a series of files bearing the extension .ini (usually reserved for configuration scripts, but we’ll let that slide). A representative sample of such a script can be found here :

    clue-chronicles-scarlet-1.txt

    What Is This Language ?
    At the time I first analyzed this language, I was still primarily a C/C++-minded programmer, with a decent amount of Perl experience as a high level language, and had just started to explore Python. I assessed this language to be “mildly object oriented with C++-type comments (‘//’) and reliant upon a number of implicit library functions”. Other people saw other properties. When I look at it nowadays, it reminds me a bit more of JavaScript than C++. I think it’s sort of a Rorschach test for programming languages.

    Strangely, I sort of had this fear that I would put a lot of effort into figuring out how to parse out the language only for someone to come along and point out that it’s a well-known yet academic language that already has a great deal of supporting code and libraries available as open source. Google for “spanish dolphins far side comic” for an illustration of the feeling this would leave me with.

    It doesn’t matter in the end. Even if such libraries exist, how easy would they be to integrate into something like ScummVM ? Time to focus on a workable approach to understanding and processing the format.

    Problem Scope
    So I set about to see if I can write a program to parse the language seen in these INI files. Some questions :

    1. How large is the corpus of data that I need to be sure to support ?
    2. What parsing approach should I take ?
    3. What is the exact language format ?
    4. Other hidden challenges ?

    To figure out how large the data corpus is, I counted all of the INI files on all of the discs. There are 138 unique INI files between the 3 discs. However, there are 146 unique INI files after installation. This leads to a hidden challenge described a bit later.

    What parsing approach should I take ? I worried a bit too much that I might not be doing this the “right” way. I’m trying to ignore doubts like this, like how “SQL Shame” blocked me on a task for a little while a few years ago as I concerned myself that I might not be using the purest, most elegant approach to the problem. I know I covered language parsing a lot time ago in university computer science education and there is a lot of academic literature to the matter. But sometimes, you just have to charge in and experiment and prototype and see what falls out. In doing so, I expect to have a better understanding of the problems that need to solved and the right questions to ask, not unlike that time that I wrote a continuous integration system from scratch because I didn’t actually know that “continuous integration” was the keyword I needed.

    Next, what is the exact language format ? I realized that parsing the language isn’t the first and foremost problem here– I need to know exactly what the language is. I need to know what the grammar are keywords are. In essence, I need to reverse engineer the language before I write a proper parser for it. I guess that fits in nicely with the historical aim of this blog (reverse engineering).

    Now, about the hidden challenges– I mentioned that there are 8 more INI files after the game installs itself. Okay, so what’s the big deal ? For some reason, all of the INI files are in plaintext on the CD-ROM but get compressed (apparently, according to file size ratios) when installed to the hard drive. This includes those 8 extra INI files. I thought to look inside the CAB installation archive file on the CD-ROM and the files were there… but all in compressed form. I suspect that one of the files forms the “root” of the program and is the launching point for the game.

    Parsing Approach
    I took a stab at parsing an INI file. My approach was to first perform lexical analysis on the file and create a list of 4 types : symbols, numbers, strings, and language elements ([]{}()=., :). Apparently, this is the kind of thing that Lex/Flex are good at. This prototyping tool is written in Python, but when I port this to ScummVM, it might be useful to call upon the services of Lex/Flex, or another lexical analyzer, for there are many. I have a feeling it will be easier to use better tools when I understand the full structure of the language based on the data available.

    The purpose of this tool is to explore all the possibilities of the existing corpus of INI files. To that end, I ran all 138 of the plaintext files through it, collected all of the symbols, and massaged the results, assuming that the symbols that occurred most frequently are probably core language features. These are all the symbols which occur more than 1000 times among all the scripts :

       6248 false
       5734 looping
       4390 scripts
       3877 layer
       3423 sequentialscript
       3408 setactive
       3360 file
       3257 thescreen
       3239 true
       3008 autoplay
       2914 offset
       2599 transparent
       2441 text
       2361 caption
       2276 add
       2205 ge
       2197 smackanimation
       2196 graphicscript
       2196 graphic
       1977 setstate
       1642 state
       1611 skippable
       1576 desc
       1413 delayscript
       1298 script
       1267 seconds
       1019 rect
    

    About That Compression
    I have sorted out at least these few details of the compression :

    bytes 0-3    "COMP" (a pretty strong sign that this is, in fact, compressed data)
    bytes 4-11   unknown
    bytes 12-15  size of uncompressed data
    bytes 16-19  size of compressed data (filesize - 20)
    bytes 20-    compressed payload
    

    The compression ratios are on the same order of gzip. I was hoping that it was stock zlib data. However, I have been unable to prove this. I wrote a Python script that scrubbed through the first 100 bytes of payload data and tried to get Python’s zlib.decompress to initialize– no luck. It’s frustrating to know that I’ll have to reverse engineer a compression algorithm that deals with just 8 total text files if I want to see this effort through to fruition.

    Update, January 15, 2019
    Some folks expressed interest in trying to sort out the details of the compression format. So I have posted a followup in which I post some samples and go into deeper details about things I have tried :

    Reverse Engineering Clue Chronicles Compression

    The post Parsing The Clue Chronicles first appeared on Breaking Eggs And Making Omelettes.

  • Libsourcey : webrtcrecorder.mp4 file is not generated

    5 décembre 2018, par Iranna Pattar

    I am running WebRTC Native Video Recorder demo Application, but webrtcrecorder.mp4 file is not generated. As I have gone through some question and answers but unable to find the answer. I am getting some error

    here is the command of cmake

    cmake .. -DCMAKE_BUILD_TYPE=DEBUG -DBUILD_SHARED_LIBS=OFF     -DBUILD_MODULES=OFF    -DBUILD_APPLICATIONS=OFF \
      -DBUILD_SAMPLES=ON         -DBUILD_TESTS=OFF         -DWITH_WEBRTC=ON -DWITH_FFMPEG=ON    -DBUILD_MODULE_base=ON \
      -DBUILD_MODULE_crypto=ON   -DBUILD_MODULE_http=ON       -DBUILD_MODULE_json=ON               -DBUILD_MODULE_av=ON    \
      -DBUILD_MODULE_net=ON      -DBUILD_MODULE_socketio=ON   -DBUILD_MODULE_symple=ON             -DBUILD_MODULE_stun=ON   \
      -DBUILD_MODULE_turn=ON     -DBUILD_MODULE_util=ON       -DBUILD_MODULE_uv=ON                 -DBUILD_MODULE_webrtc=ON \
      -DBUILD_SAMPLES_webrtc=ON  -DWEBRTC_INCLUDE_DIR=/home/ubuntu/temp/webrtc-22215-ab42706-linux-x64/include \
      -DWEBRTC_LIBRARIES=/home/ubuntu/temp/webrtc-22215-ab42706-linux-x64/lib/ \
      -DWEBRTC_ROOT_DIR=/home/ubuntu/temp/webrtc-22215-ab42706-linux-x64    \
      -DBUILD_MODULE_openssl=ON   -DOPENSSL_ROOT_DIR=/usr/local/ssl     -DOPENSSL_LIBRARIES=/usr/local/ssl/lib/ \
      -DOPENSSL_INCLUDE_DIR=/usr/local/ssl/include/openssl/

    here are the logs of webrtcrecorder :

    Client state changed from Closed to Connecting
    13:31:54 [debug] [application.cpp(104)] Wait for shutdown
    13:31:54 [debug] [signaler.cpp(116)] Client state changed from Connecting to Connected
    13:31:54 [debug] [client.cpp(364)] On handshake: sid=_Wi06W8eF4GdOGn_AAAA, pingInterval=25000, pingTimeout=60000
    13:31:54 [debug] [client.cpp(387)] Peer connected:videorecorder|_Wi06W8eF4GdOGn_AAAA
    13:31:54 [debug] [signaler.cpp(116)] Client state changed from Connected to Online
    13:31:59 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:31:59 [debug] [signaler.cpp(71)] Peer connected: Ivv61MFbOi96l__ZAAAB
    13:31:59 [debug] [client.cpp(387)] Peer connected:demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [peer.cpp(130)] Ivv61MFbOi96l__ZAAAB: Receive offer: v=0
    o=- 7392103695987858658 2 IN IP4 127.0.0.1
    s=-
    t=0 0
    a=group:BUNDLE audio video
    a=msid-semantic: WMS je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd
    m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
    c=IN IP4 0.0.0.0
    a=rtcp:9 IN IP4 0.0.0.0
    a=ice-ufrag:ICgM
    a=ice-pwd:hruHw+Fgaswb+slJ3/eE3Yad
    a=ice-options:trickle
    a=fingerprint:sha-256 B3:30:19:FA:91:57:CE:2B:7D:60:C4:16:27:FE:8E:CB:76:57:31:C6:75:72:72:87:36:C4:8E:30:91:01:27:D8
    a=setup:actpass
    a=mid:audio
    a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
    a=sendrecv
    a=rtcp-mux
    a=rtpmap:111 opus/48000/2
    a=rtcp-fb:111 transport-cc
    a=fmtp:111 minptime=10;useinbandfec=1
    a=rtpmap:103 ISAC/16000
    a=rtpmap:104 ISAC/32000
    a=rtpmap:9 G722/8000
    a=rtpmap:0 PCMU/8000
    a=rtpmap:8 PCMA/8000
    a=rtpmap:106 CN/32000
    a=rtpmap:105 CN/16000
    a=rtpmap:13 CN/8000
    a=rtpmap:110 telephone-event/48000
    a=rtpmap:112 telephone-event/32000
    a=rtpmap:113 telephone-event/16000
    a=rtpmap:126 telephone-event/8000
    a=ssrc:1294348972 cname:G/WgJ3Ijh9QR84NI
    a=ssrc:1294348972 msid:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd 30683b54-4aef-4c98-bf11-e9f497eddafd
    a=ssrc:1294348972 mslabel:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd
    a=ssrc:1294348972 label:30683b54-4aef-4c98-bf11-e9f497eddafd
    m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114
    c=IN IP4 0.0.0.0
    a=rtcp:9 IN IP4 0.0.0.0
    a=ice-ufrag:ICgM
    a=ice-pwd:hruHw+Fgaswb+slJ3/eE3Yad
    a=ice-options:trickle
    a=fingerprint:sha-256 B3:30:19:FA:91:57:CE:2B:7D:60:C4:16:27:FE:8E:CB:76:57:31:C6:75:72:72:87:36:C4:8E:30:91:01:27:D8
    a=setup:actpass
    a=mid:video
    a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
    a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
    a=extmap:4 urn:3gpp:video-orientation
    a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
    a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
    a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
    a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
    a=sendrecv
    a=rtcp-mux
    a=rtcp-rsize
    a=rtpmap:96 VP8/90000
    a=rtcp-fb:96 goog-remb
    a=rtcp-fb:96 transport-cc
    a=rtcp-fb:96 ccm fir
    a=rtcp-fb:96 nack
    a=rtcp-fb:96 nack pli
    a=rtpmap:97 rtx/90000
    a=fmtp:97 apt=96
    a=rtpmap:98 VP9/90000
    a=rtcp-fb:98 goog-remb
    a=rtcp-fb:98 transport-cc
    a=rtcp-fb:98 ccm fir
    a=rtcp-fb:98 nack
    a=rtcp-fb:98 nack pli
    a=fmtp:98 x-google-profile-id=0
    a=rtpmap:99 rtx/90000
    a=fmtp:99 apt=98
    a=rtpmap:100 H264/90000
    a=rtcp-fb:100 goog-remb
    a=rtcp-fb:100 transport-cc
    a=rtcp-fb:100 ccm fir
    a=rtcp-fb:100 nack
    a=rtcp-fb:100 nack pli
    a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
    a=rtpmap:101 rtx/90000
    a=fmtp:101 apt=100
    a=rtpmap:102 H264/90000
    a=rtcp-fb:102 goog-remb
    a=rtcp-fb:102 transport-cc
    a=rtcp-fb:102 ccm fir
    a=rtcp-fb:102 nack
    a=rtcp-fb:102 nack pli
    a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
    a=rtpmap:122 rtx/90000
    a=fmtp:122 apt=102
    a=rtpmap:127 H264/90000
    a=rtcp-fb:127 goog-remb
    a=rtcp-fb:127 transport-cc
    a=rtcp-fb:127 ccm fir
    a=rtcp-fb:127 nack
    a=rtcp-fb:127 nack pli
    a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
    a=rtpmap:121 rtx/90000
    a=fmtp:121 apt=127
    a=rtpmap:125 H264/90000
    a=rtcp-fb:125 goog-remb
    a=rtcp-fb:125 transport-cc
    a=rtcp-fb:125 ccm fir
    a=rtcp-fb:125 nack
    a=rtcp-fb:125 nack pli
    a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
    a=rtpmap:107 rtx/90000
    a=fmtp:107 apt=125
    a=rtpmap:108 H264/90000
    a=rtcp-fb:108 goog-remb
    a=rtcp-fb:108 transport-cc
    a=rtcp-fb:108 ccm fir
    a=rtcp-fb:108 nack
    a=rtcp-fb:108 nack pli
    a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
    a=rtpmap:109 rtx/90000
    a=fmtp:109 apt=108
    a=rtpmap:124 H264/90000
    a=rtcp-fb:124 goog-remb
    a=rtcp-fb:124 transport-cc
    a=rtcp-fb:124 ccm fir
    a=rtcp-fb:124 nack
    a=rtcp-fb:124 nack pli
    a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
    a=rtpmap:120 rtx/90000
    a=fmtp:120 apt=124
    a=rtpmap:123 red/90000
    a=rtpmap:119 rtx/90000
    a=fmtp:119 apt=123
    a=rtpmap:114 ulpfec/90000
    a=ssrc-group:FID 3747062777 227800175
    a=ssrc:3747062777 cname:G/WgJ3Ijh9QR84NI
    a=ssrc:3747062777 msid:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd e64ec0a4-3603-40d3-a6c6-01c5e60c79ef
    a=ssrc:3747062777 mslabel:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd
    a=ssrc:3747062777 label:e64ec0a4-3603-40d3-a6c6-01c5e60c79ef
    a=ssrc:227800175 cname:G/WgJ3Ijh9QR84NI
    a=ssrc:227800175 msid:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd e64ec0a4-3603-40d3-a6c6-01c5e60c79ef
    a=ssrc:227800175 mslabel:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd
    a=ssrc:227800175 label:e64ec0a4-3603-40d3-a6c6-01c5e60c79ef

    13:32:00 [debug] [peer.cpp(165)] Ivv61MFbOi96l__ZAAAB: On signaling state change: 3
    13:32:00 [debug] [peer.cpp(225)] Ivv61MFbOi96l__ZAAAB: On add stream
    13:32:00 [debug] [signaler.cpp(139)] -------onAddRemotestream---------
    13:32:00 [debug] [peermanager.cpp(64)] Received offer: v=0
    o=- 7392103695987858658 2 IN IP4 127.0.0.1
    s=-
    t=0 0
    a=group:BUNDLE audio video
    a=msid-semantic: WMS je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd
    m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
    c=IN IP4 0.0.0.0
    a=rtcp:9 IN IP4 0.0.0.0
    a=ice-ufrag:ICgM
    a=ice-pwd:hruHw+Fgaswb+slJ3/eE3Yad
    a=ice-options:trickle
    a=fingerprint:sha-256 B3:30:19:FA:91:57:CE:2B:7D:60:C4:16:27:FE:8E:CB:76:57:31:C6:75:72:72:87:36:C4:8E:30:91:01:27:D8
    a=setup:actpass
    a=mid:audio
    a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
    a=sendrecv
    a=rtcp-mux
    a=rtpmap:111 opus/48000/2
    a=rtcp-fb:111 transport-cc
    a=fmtp:111 minptime=10;useinbandfec=1
    a=rtpmap:103 ISAC/16000
    a=rtpmap:104 ISAC/32000
    a=rtpmap:9 G722/8000
    a=rtpmap:0 PCMU/8000
    a=rtpmap:8 PCMA/8000
    a=rtpmap:106 CN/32000
    a=rtpmap:105 CN/16000
    a=rtpmap:13 CN/8000
    a=rtpmap:110 telephone-event/48000
    a=rtpmap:112 telephone-event/32000
    a=rtpmap:113 telephone-event/16000
    a=rtpmap:126 telephone-event/8000
    a=ssrc:1294348972 cname:G/WgJ3Ijh9QR84NI
    a=ssrc:1294348972 msid:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd 30683b54-4aef-4c98-bf11-e9f497eddafd
    a=ssrc:1294348972 mslabel:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd
    a=ssrc:1294348972 label:30683b54-4aef-4c98-bf11-e9f497eddafd
    m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114
    c=IN IP4 0.0.0.0
    a=rtcp:9 IN IP4 0.0.0.0
    a=ice-ufrag:ICgM
    a=ice-pwd:hruHw+Fgaswb+slJ3/eE3Yad
    a=ice-options:trickle
    a=fingerprint:sha-256 B3:30:19:FA:91:57:CE:2B:7D:60:C4:16:27:FE:8E:CB:76:57:31:C6:75:72:72:87:36:C4:8E:30:91:01:27:D8
    a=setup:actpass
    a=mid:video
    a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
    a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
    a=extmap:4 urn:3gpp:video-orientation
    a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
    a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
    a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
    a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
    a=sendrecv
    a=rtcp-mux
    a=rtcp-rsize
    a=rtpmap:96 VP8/90000
    a=rtcp-fb:96 goog-remb
    a=rtcp-fb:96 transport-cc
    a=rtcp-fb:96 ccm fir
    a=rtcp-fb:96 nack
    a=rtcp-fb:96 nack pli
    a=rtpmap:97 rtx/90000
    a=fmtp:97 apt=96
    a=rtpmap:98 VP9/90000
    a=rtcp-fb:98 goog-remb
    a=rtcp-fb:98 transport-cc
    a=rtcp-fb:98 ccm fir
    a=rtcp-fb:98 nack
    a=rtcp-fb:98 nack pli
    a=fmtp:98 x-google-profile-id=0
    a=rtpmap:99 rtx/90000
    a=fmtp:99 apt=98
    a=rtpmap:100 H264/90000
    a=rtcp-fb:100 goog-remb
    a=rtcp-fb:100 transport-cc
    a=rtcp-fb:100 ccm fir
    a=rtcp-fb:100 nack
    a=rtcp-fb:100 nack pli
    a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
    a=rtpmap:101 rtx/90000
    a=fmtp:101 apt=100
    a=rtpmap:102 H264/90000
    a=rtcp-fb:102 goog-remb
    a=rtcp-fb:102 transport-cc
    a=rtcp-fb:102 ccm fir
    a=rtcp-fb:102 nack
    a=rtcp-fb:102 nack pli
    a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
    a=rtpmap:122 rtx/90000
    a=fmtp:122 apt=102
    a=rtpmap:127 H264/90000
    a=rtcp-fb:127 goog-remb
    a=rtcp-fb:127 transport-cc
    a=rtcp-fb:127 ccm fir
    a=rtcp-fb:127 nack
    a=rtcp-fb:127 nack pli
    a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
    a=rtpmap:121 rtx/90000
    a=fmtp:121 apt=127
    a=rtpmap:125 H264/90000
    a=rtcp-fb:125 goog-remb
    a=rtcp-fb:125 transport-cc
    a=rtcp-fb:125 ccm fir
    a=rtcp-fb:125 nack
    a=rtcp-fb:125 nack pli
    a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
    a=rtpmap:107 rtx/90000
    a=fmtp:107 apt=125
    a=rtpmap:108 H264/90000
    a=rtcp-fb:108 goog-remb
    a=rtcp-fb:108 transport-cc
    a=rtcp-fb:108 ccm fir
    a=rtcp-fb:108 nack
    a=rtcp-fb:108 nack pli
    a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
    a=rtpmap:109 rtx/90000
    a=fmtp:109 apt=108
    a=rtpmap:124 H264/90000
    a=rtcp-fb:124 goog-remb
    a=rtcp-fb:124 transport-cc
    a=rtcp-fb:124 ccm fir
    a=rtcp-fb:124 nack
    a=rtcp-fb:124 nack pli
    a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
    a=rtpmap:120 rtx/90000
    a=fmtp:120 apt=124
    a=rtpmap:123 red/90000
    a=rtpmap:119 rtx/90000
    a=fmtp:119 apt=123
    a=rtpmap:114 ulpfec/90000
    a=ssrc-group:FID 3747062777 227800175
    a=ssrc:3747062777 cname:G/WgJ3Ijh9QR84NI
    a=ssrc:3747062777 msid:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd e64ec0a4-3603-40d3-a6c6-01c5e60c79ef
    a=ssrc:3747062777 mslabel:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd
    a=ssrc:3747062777 label:e64ec0a4-3603-40d3-a6c6-01c5e60c79ef
    a=ssrc:227800175 cname:G/WgJ3Ijh9QR84NI
    a=ssrc:227800175 msid:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd e64ec0a4-3603-40d3-a6c6-01c5e60c79ef
    a=ssrc:227800175 mslabel:je7s7e9RhWY3cMVjVn8y0ipyOgJnTgu1bMYd
    a=ssrc:227800175 label:e64ec0a4-3603-40d3-a6c6-01c5e60c79ef

    13:32:00 [debug] [peer.cpp(329)] On SDP parse success
    13:32:00 [debug] [peer.cpp(255)] Ivv61MFbOi96l__ZAAAB: Set local description
    13:32:00 [debug] [peer.cpp(165)] Ivv61MFbOi96l__ZAAAB: On signaling state change: 0
    13:32:00 [debug] [peer.cpp(329)] On SDP parse success
    13:32:00 [debug] [peer.cpp(191)] Ivv61MFbOi96l__ZAAAB: On ICE gathering change: 1
    13:32:00 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [peermanager.cpp(85)] Received candidate: candidate:2999745851 1 udp 2122260223 192.168.56.1 60548 typ host generation 0 ufrag ICgM network-id 2
    13:32:00 [debug] [peer.cpp(185)] Ivv61MFbOi96l__ZAAAB: On ICE connection change: 1
    13:32:00 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [peermanager.cpp(85)] Received candidate: candidate:564218470 1 udp 2122194687 100.64.100.204 60549 typ host generation 0 ufrag ICgM network-id 1 network-cost 10
    13:32:00 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [peermanager.cpp(85)] Received candidate: candidate:2999745851 1 udp 2122260223 192.168.56.1 60550 typ host generation 0 ufrag ICgM network-id 2
    13:32:00 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [peermanager.cpp(85)] Received candidate: candidate:564218470 1 udp 2122194687 100.64.100.204 60551 typ host generation 0 ufrag ICgM network-id 1 network-cost 10
    13:32:00 [debug] [peer.cpp(191)] Ivv61MFbOi96l__ZAAAB: On ICE gathering change: 2
    13:32:00 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [peermanager.cpp(85)] Received candidate: candidate:4233069003 1 tcp 1518280447 192.168.56.1 9 typ host tcptype active generation 0 ufrag ICgM network-id 2
    13:32:00 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [peermanager.cpp(85)] Received candidate: candidate:1864545942 1 tcp 1518214911 100.64.100.204 9 typ host tcptype active generation 0 ufrag ICgM network-id 1 network-cost 10
    13:32:00 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [peermanager.cpp(85)] Received candidate: candidate:4233069003 1 tcp 1518280447 192.168.56.1 9 typ host tcptype active generation 0 ufrag ICgM network-id 2
    13:32:00 [debug] [signaler.cpp(89)] Peer message: demo|Ivv61MFbOi96l__ZAAAB
    13:32:00 [debug] [peermanager.cpp(85)] Received candidate: candidate:1864545942 1 tcp 1518214911 100.64.100.204 9 typ host tcptype active generation 0 ufrag ICgM network-id 1 network-cost 10
    13:32:15 [debug] [peer.cpp(185)] Ivv61MFbOi96l__ZAAAB: On ICE connection change: 4```

    Error :

    [libx264 @ 0x7f415c001600] invalid level_idc: 8
    12:00:14 [error] [multiplexencoder.cpp(153)] Error: Cannot open the video codec: Generic error in an external library
    12:00:14 [error] [streamrecorder.cpp(87)] Failed to init encoder: std::exception

    How to resolve this error ?