Asterisk не установлен кодек h264
As a part of the Media Overhaul project for Asterisk 10, changes have been made to Asterisk to increase the number of codecs it's capable of supporting, to handle codecs with custom formats, and to support audio sampling rates greater than 16kHz. This has resulted in several practical changes to Asterisk that will benefit its users.
Note that the additional codecs discussed here are available for use in Asterisk's SIP channel driver, only. Asterisk 10 does not make them available for IAX2, MGCP, SSCP, H.323, UniSTIM, etc.
Expanded Signed Linear Support
Versions of Asterisk prior to 10 supported 16-bit Signed Linear sampled at 8kHz and at 16kHz (versions 1.6.0 - 1.8). New to Asterisk 10 is support for a much wider range of sampling rates. Asterisk can resample between any of these sampling rates and can read/write raw 16-bit signed linear audio files from/to disk. The complete list of supported sampling rates and file format extensions is:
Asterisk File format
Asterisk 10 removes the format_sln16 file format in favor of expanded support in the main format_sln file format for all sampling rates. So, users who notice the absence of format_sln16 from their Asterisk 10 builds should not panic.
Users can create 16-bit Signed Linear files of varying sampling rates from WAV files using the sox command-line audio utility.
In this example, an input WAV file has been converted to Signed Linear at a depth of 16-bits and at a rate of 32kHz. The resulting output.sln file is then renamed output.sln32 so that it can be processed correctly by Asterisk.
32kHz Speex Support
Asterisk versions prior to 1.8 supported 8kHz Speex. Asterisk 1.8 supports 8 and 16kHz Speex. Asterisk 10 now supports 8, 16, and 32kHz Speex. Use of the 32kHz Speex mode is, like the other modes, controlled in the respective channel driver's configuration file, e.g. chan_sip's sip.conf.
In this example, we have created three SIP peers for 3 different devices. The first, mypeer, supports only the 8kHz sampling of Speex; the second, mypeer2, supports only the 16kHz sampling of Speex; and the third, mypeer3, supports the new 32kHz sampling of Speex.
For comparison, here are some Speex samples, saved as WAV files in .mov containers, for ease-of-playback.
CELT Pass-through Support
Asterisk 10 adds pass-through support for the CELT codec. CELT provides low-delay transmission of high-quality audio. Unlike many other codecs that are focused on the transmission of human speech only, CELT is suitable for the transmission of both speech and audio, e.g. music.
Because the CELT codec is being folded, along with SILK, into a future codec called OPUS, and because the CELT bitstream isn't finalized, we have chosen not to add transcoding support for CELT as this time. CELT is configured in codecs.conf with the following parameters.
Sets the CELT codec as the type of codec being configured
32000, 441000, 48000
Defines the sampling rate in Hz to be used for the defined codec
Represents the duration of each frame in samples. Defaults to 480 and should only be defined if a client does not use the default size. This option allows the codec to split 20ms frames into multiple frames in an anticipatory way. Thus, with 20ms frames at 48kHz are 960 samples, the packet is large. So setting framesize to 480, 20ms frames are transmitted in two 480 sample packets.
CELT codecs.conf example
In this example, three different CELT codecs are created: one for 32kHz mode, one for 44kHz mode, and another for 48kHz mode.
These codecs cannot be dynamically changed while Asterisk is running. In order to make changes, an Asterisk restart is required.
To make sure a codec or format is setup correctly, you can execute:
from the Asterisk CLI
CELT sip.conf example
Corresponding SIP peer entries to use the CELT codec would look like:
In this case, we have defined 3 peers, each with a different CELT sampling rate. Thus, you'd probably want to set at least two of them to the same CELT rate, so they could call each other.
For CELT-calling, there are not a host of options on the client side. One could try Ekiga or SFLphone as softclients to make CELT calls.
SILK Support
Asterisk 10 provides full support for Skype's SILK codec. SILK is an extremely flexible codec for the transmission of speech. It operates in low bitrate narrow-band modes as well as higher (but still very low, otherwise) bitrate super wide-band modes. With respect to CPU complexity, its consumption is roughly three times that of G.729a at comparable bitrates.
SILK is configured in codecs.conf with the following parameters
Sets the SILK codec as the type of codec being configured
8000, 12000, 16000, 24000
Defines the sampling rate in Hz to be used for the defined codec
Sets the use of Forward Error Correction by the codec. Off by default.
Integer as a percent
Defines the estimated packetloss in the uplink direction. This parameter affects the amount of redundancy built into SILK when fec is enabled. The larger the amount, the higher the consumed bandwidth. Default is 0. 10 is recommended when fec is enabled
8kHz: 5000-20000, 12kHz: 7000-25000, 16kHz: 8000-30000, 24kHz: 20000-40000
Defines, in bps and per the sampling rate being used, the maximum bitrate that will be consumed by the codec
Defines whether encoding is done in discontinuous transmission mode. If enabled, bandwidth will be reduced during periods of silence, but additional CPU complexity will be required. Off by default
SILK codecs.conf example
In this example, four different SILK codecs are created: one each for 8 (silk8), 12 (silk12), 16 (silk16), and 24kHz (silk24).
These codecs cannot be dynamically changed while Asterisk is running. In order to make changes, an Asterisk restart is required.
To make sure a codec or format is setup correctly, you can execute:
from the Asterisk CLI
SILK sip.conf example
Corresponding SIP peer entries to use the SILK codec would look like:
In this case, we have defined 4 peers, each with a different SILK codec.
The generally available SIP softphones that support SILK are, to our knowledge, CSIPSimple and nightly builds of Jitsi beginning with build 3648 (so that, and anything newer than that).
Для каждого SIP пользователя, Вам нужно указать поддерживаемые видеокодеки (см. примеры на этой странице). Если Вы не хотите полагаться на согласование видокодеков, которое существует в непропатченном сервере Asterisk версии 1.4.x (и не всегда корректно работает), убедитесь, что вы разрешили только один кодек для видео в Вашем файле sip.conf. Для решения этой проблемы, можно воспользоваться патчем, который описан ниже. И конечно, видеокодеки должны поддерживаться SIP телефонами, которые подключены к серверу Asterisk. Asterisk может работать только в прозрачном режиме при передаче видеопотоков.
Видеоконверторы для Asterisk
- FFasterisk: Утилита для создания видео контекста для Asterisk. Она позволяет конвертировать MOV файлы в пару файлов .H.263 (для видео) и .wav (для звука), с которыми может работать сервер Asterisk.
Программное обеспечение для создания видеоконференций в Asterisk.
- 1videoConference: VVoIP Решение с открытыми исходными кодами от Adiance.
- Mediamixer от Sergio Murillo.
- app_conference: имеет ограниченную поддержку видео.
- Confiance.
Некоторые основные моменты, относительно использования видео в Asterisk
В сервере asterisk версии 1.4, выбор видеокодека содержит дефекты в алгоритме (также смотри данный bug report). Для решения это проблемы IVèS предложил патч, но он не был принят. Кроме того, другая независимая разработка с названием Asterisk videocaps, позволяет надлежащим образом согласовывать fmtp атрибуты, связанные с передачей видеопотоков, в SDP. Это решение было включено в trunk и может быть появится в Asterisk 1.6.
В asterisk 1.6 запланирована глобальная перестройка поддержки видео для различных каналов, но никаких технических условий по реализации не было опубликовано. Кто-то просто хочет включить поддержку videocaps и остановиться на этом. Некоторые имеют более амбициозные планы на этот счет. Рекомендуется ознакомиться со списком рассылки: Asterisk video.
Другая проблема, связана с форматом файлов, которые содержат видео приветствия и подсказки. На данный момент, Asterisk записывает содержимое RTP пакетов, включая некоторую информацию, связанную с таймингом, в файлы с расширением .h263, ph263p, .h264. Sergio Murillo разработал приложение MP4 asterisk apps, которое может проигрывать и записывать файлы в формате MPEG4. Но проблемы, связанные с патентами, не дают возможность компании Digium интегрировать это приложение в состав сервера Asterisk.
Поддержка перекодирования из одного видеокодека в другой (транскодинг) также не поддерживается и, вероятно, не будет поддерживаться в сервере Asterisk. Использование библиотеки ffmpeg для этих целей опять создаст проблемы с лицензированием и патентами. Транскодирование видеокодеков в Asterisk также создает проблемы связанные с уменьшением производительности сервера в целом. Однако, Sergio предложил приложение, которое может выполнять некоторые ограниченные функции, связанные с транскодированием видеокодеков, оно базируется на библиотеке ffmpeg и называется - app_transcoder. Приложение имеет ограничения в текущей версии, но может быть легко расширено по функциональности теми, кто имеет опыт программирования с использованием библиотеки ffmpeg.
Последний момент, представляющий интерес, это возможность обработки ISDN/3G видеовызовов с помощью Asterisk, используя разработки от Sergio. Для дополнительной информации по этому вопросу, смотри: эту страницу.
Следующее клиенты имеют поддержку видео, которая работает совместно с сервером Asterisk:
There is also some information how to make an 3G-H.324M (UMTS Video) - SIP gateway with asterisk: Asterisk H324M
Некоторые моменты, касающиеся голосовой почты и поддержки видео.
Call Image Videotel - содержит специальные возможности для создания нормальной записи, без каких-либо модификаций самого сервера asterisk (Замечание: на данный момент линк битый. Или videotel изменил имя страницы или прекратил поддержку данного продукта).
Настройка Windows Messenger для работы с сервером Asterisk (по протоколу SIP)
Пример настройки файла sip.conf:
[general]
videosupport=yes
[video2]
type=friend
username=video2
secret=hidden
host=dynamic
context=from-camera
callerid=Video 2
canreinvite=no
disallow=all ; Windows Messenger выбирает неправильные кодеки, если указать: allow=all
allow=ulaw
allow=alaw
allow=speex
allow=gsm
allow=h261
allow=h263
allow=h263p
mikeles » 01 фев 2013, 09:39
Все это есть. Стоит
sip.conf
Код: выделить все [general]
videosupport=yes
allow=alaw
allow=ulaw
allow=h264
Код: выделить все localhost*CLI> sip show settings
Global Settings:
----------------
UDP Bindaddress: 0.0.0.0:5060
TCP SIP Bindaddress: Disabled
TLS SIP Bindaddress: Disabled
Videosupport: Yes
Textsupport: No
Ignore SDP sess. ver.: No
AutoCreate Peer: No
Match Auth Username: No
Allow unknown access: Yes
Allow subscriptions: Yes
Allow overlap dialing: Yes
Allow promisc. redir: No
Enable call counters: No
SIP domain support: No
Realm. auth: No
Our auth realm asterisk
Use domains as realms: No
Call to non-local dom.: Yes
URI user is phone no: No
Always auth rejects: Yes
Direct RTP setup: No
User Agent: FPBX-2.10.0rc1(1.8.11)
SDP Session Name: Asterisk PBX 1.8.11-cert1
SDP Owner Name: root
Reg. context: (not set)
Regexten on Qualify: No
Legacy userfield parse: No
Caller ID: Unknown
From: Domain:
Record SIP history: Off
Call Events: Off
Auth. Failure Events: Off
T.38 support: No
T.38 EC mode: Unknown
T.38 MaxDtgrm: -1
SIP realtime: Disabled
Qualify Freq : 60000 ms
Q.850 Reason header: No
Store SIP_CAUSE: No
Network QoS Settings:
---------------------------
IP ToS SIP: CS3
IP ToS RTP audio: EF
IP ToS RTP video: AF41
IP ToS RTP text: CS0
802.1p CoS SIP: 4
802.1p CoS RTP audio: 5
802.1p CoS RTP video: 6
802.1p CoS RTP text: 5
Jitterbuffer enabled: No
Network Settings:
---------------------------
SIP address remapping: Disabled, no localnet list
Externhost:
Externaddr: (null)
Externrefresh: 10
Global Signalling Settings:
---------------------------
Codecs: 0xc (ulaw|alaw)
Codec Order: ulaw:20,alaw:20
Relax DTMF: No
RFC2833 Compensation: No
Symmetric RTP: No
Compact SIP headers: No
RTP Keepalive: 0 (Disabled)
RTP Timeout: 0 (Disabled)
RTP Hold Timeout: 0 (Disabled)
MWI NOTIFY mime type: application/simple-message-summary
DNS SRV lookup: Yes
Pedantic SIP support: Yes
Reg. min duration 60 secs
Reg. max duration: 3600 secs
Reg. default duration: 120 secs
Outbound reg. timeout: 20 secs
Outbound reg. attempts: 0
Notify ringing state: Yes
Include CID: No
Notify hold state: Yes
SIP Transfer mode: open
Max Call Bitrate: 384 kbps
Auto-Framing: No
Outb. proxy:
Session Timers: Accept
Session Refresher: uas
Session Expires: 1800 secs
Session Min-SE: 90 secs
Timer T1: 500
Timer T1 minimum: 100
Timer B: 32000
No premature media: Yes
Max forwards: 70
Default Settings:
-----------------
Allowed transports: UDP
Outbound transport: UDP
Context: from-sip-external
Force rport: Yes
DTMF: rfc2833
Qualify: 0
Use ClientCode: No
Progress inband: Never
Language:
MOH Interpret: default
MOH Suggest:
Voice Mail Extension: *97
modules.conf
Код: выделить все load => format_h264.so
Совершенно не лишним будет разобрать как же все-таки добавить необходимые кодеки в систему где развернута АТС на базе Asterisk. Может конечно данная заметка и не претендует на новизну, но все же она носит практический характер для меня лично, своего рода шпаргалка.
А потому можно и разобрать уже опубликованные заметки присутствующие во всемирной паутине но с акцентом на свое видение.
Asterisk развернут по заметке опубликованной на моем блоге:
ekzorchik@srv-host:~$ uname -a && lsb_release -a && asterisk -V
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.4 LTS
На сколько я вычитал, к одек G.729 позволяет вести много большее количество разговоров при ограниченном канале, что сразу же поднимает его эффективность. В обычном использовании VOIP телефонии используется 64Кбит/с (кодек G711), а тут один звонок уже 8Кбит/с — выгода очевидна.
Вывести информацию по типу процессора и используемым инструкциям процессора:
ekzorchik@srv-host:~$ cat /proc/cpuinfo | grep -E 'model name|flags'
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid pni cx16 popcnt hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch arat vmmcall
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid pni cx16 popcnt hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch arat vmmcall
из этого вывода для текущей заметки является то какие инструкции поддерживает процессор, в моем случае это лишь: sse4a, именно для этой инструкции в дальнейшем и нужно будет скачать уже откомпилированный бинарник.
ekzorchik@srv-host:~$ sudo asterisk -rvvvv
Информация по текущим установленным модулям:
ekzorchik@srv-host:~$ sudo asterisk -rx "core show codecs" | grep g726
5 audio g726 (G.726 RFC3551)
6 audio g726aal2 (G.726 AAL2)
ekzorchik@srv-host:~$ file /usr/lib/asterisk/modules/codec_g726.so
/usr/lib/asterisk/modules/codec_g726.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=50045b5d6cb366f0d4e16acdac126e0f943c948e, stripped
Файлы представленные на сайте кодеков имеет следующий формат:
- g729 → тип кодека
- ast130 → версия Asterisk 13
- gcc4 → тип компилятора
- glibc → библиотеки
- x86_64 → разрядность процессора и ОС
- core2 — тип процессора (поколение)
- sse4 → набор инструкций
Из представленного скриншота ниже видно что к примеру у меня нет кодека g729 — вот установку его и разберу.
srv-host*CLI> quit
Asterisk cleanly ending (0).
Executing last minute cleanups
Скачиваю бинарник файла кодека под свои инструкции которыми может оперировать мой процессор.
Копирую скачанный кодек в папку modules:
ekzorchik@srv-host:~$ sudo mv codec_g729-ast130-gcc4-glibc-x86_64-core2-sse4.so /usr/lib/asterisk/modules/
Устанавливаю скачанный кодек:
ekzorchik@srv-host:~$ sudo asterisk -rvvv
srv-host*CLI> core reload
srv-host*CLI> module load codec_g729-ast130-gcc4-glibc-x86_64-core2-sse4.so
Проверяю видит ли Asterisk добавленный кодек:
srv-host*CLI> core show translation
странно вывода как раньше нет, значит у меня конфликт того факта что скачанный и установленный модуль не соответствует моей архитектуре процессора. Что ж буду исправляться.
srv-host*CLI> module unload -f codec_g729-ast130-gcc4-glibc-x86_64-core2-sse4.so
srv-host*CLI> quit
Asterisk cleanly ending (0).
Executing last minute cleanups
ekzorchik@srv-host:~$ sudo rm /usr/lib/asterisk/modules/codec_g729-ast130-gcc4-glibc-x86_64-core2-sse4.so
ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk restart
ekzorchik@srv-host:~$ sudo asterisk -rvvv
srv-host*CLI> core show translation
вот теперь вывод есть
ekzorchik@srv-host:~$ sudo cp codec_g729-ast130-gcc4-glibc-athlon-sse.so /usr/lib/asterisk/modules/codec_g729.so
ekzorchik@srv-host:~$ sudo asterisk -rx "module load codec_g729.so"
Unable to load module codec_g729.so
Command ‘module load codec_g729.so’ failed.
Это по тому что, что я не внимателен и библиотека для 32‘битной архитектуры
ekzorchik@srv-host:~$ sudo file /usr/lib/asterisk/modules/codec_g729.so
/usr/lib/asterisk/modules/codec_g729.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=fd48fad20f16fe008f2e399dcb60bef6930bcdb2, stripped
ekzorchik@srv-host:~$ file codec_g729-ast130-gcc4-glibc-x86_64-opteron.so
codec_g729-ast130-gcc4-glibc-x86_64-opteron.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=7be3620e1cee9ad1f47e69c94c799c78d6407d19, stripped
ekzorchik@srv-host:~$ sudo mv codec_g729-ast130-gcc4-glibc-x86_64-opteron.so /usr/lib/asterisk/modules/codec_g729.so
ekzorchik@srv-host:~$ sudo asterisk -rx "module load codec_g729.so"
ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk restart
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.
ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk status
* Asterisk PBX is running
если не запущен то запускаем:
ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk start
Starting Asterisk PBX: asterisk.
ekzorchik@srv-host:~$ sudo asterisk -rx "core show translation" | grep g729
ulaw alaw gsm g726 g726aal2 adpcm slin slin slin slin slin slin slin slin slin lpc10 g729 speex speex speex g722 testlaw opus amr amrwb
g729 15000 15000 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 — 15000 23000 23000 17250 15000 17250 15000 23000
у меня в колонке символ дефиса ( «-» ) — это значит что в системе нет данного кодека, не совсем точно подходит архитектура скачанного модуля и тип используемых инструкций.
У меня было, что я не правильную версию модуля скачал, т. е. От другой версии Asterisk — и Asterisk вообще упал — так что сперва в тестовых условиях обкатайте, а уже потом если действительно нужно на боевой системе:
, но у меня он падает
ekzorchik@srv-host:~$ sudo asterisk -rvvv
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)
ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk status
* Asterisk PBX is not running
ekzorchik@srv-host:~$ sudo tail -f /var/log/syslog
Jul 10 17:08:11 srv-host kernel: [18294.737419] asterisk[3756]: segfault at 40 ip 00007f1f7040c911 sp 00007ffc5e582f48 error 4 in asterisk[7f1f70349000+246000]
По мне так это из-за модуля он конфликтует с используемым типом процессора (у меня же Asterisk установлен внутри Virtualbox — я тестирую). Ладно так и быть удаляю и попробую позже на домашней системе:
ekzorchik@srv-host:~$ sudo rm /usr/lib/asterisk/modules/codec_g729.so
ekzorchik@srv-host:~$ sudo /etc/init.d/asterisk restart
Stopping Asterisk PBX: asterisk.
Starting Asterisk PBX: asterisk.
ekzorchik@srv-host:~$ sudo asterisk -rx "core show translation" | grep g729
вывода нет значит и модуля тоже нет, Asterisk сейчас работает и в логах нет ошибок. Во общем хорошо.
Хоть я и не достиг поставленной цели данной заметкой, но в то же время узнал много нового, а именно ни в коем случае не нужно все делать на продуктиве, лучше потратить некоторое время на тест, обкатать а уже только потом трижды подумать и применять на боевой предварительно сделав бекап. И я считаю, что за сервис должен отвечать только один человек, т. к. если их много то исправив как Вам кажется что-то неправильное на Ваш взгляд Вы все порушите, потому что это был чей-то костыль. А когда весь функционал ведет один человек (к примеру Я сам), то я знаю что и для чего когда либо делалось. На этом я прощаюсь, действия данной заметки я разберу на боевой системе чуть позже и обязательно поделюсь результатами, а пока все, до новых встреч, с уважением автор блога — ekzorchik.
Сейчас имею Asterisk 16 с настроенным WebRTC и sipML5 в качестве клиента. Аудиозвонки работают нормально во все стороны. Видео работает как попало: эхо-тест работает в Firefox и CSipSimple, а в Chromium'е тупо не показывает входящий видеопоток.
Карта в SDP одинакова что для Firefox'а, что для Chromium'а. Пробовал тасовать кодеки без результата. Пробовал врубать direct_media, тоже без результата. В логах Asterisk'а вижу, что когда работает Firefox, то Strict RTP лочится на два потока (видео и аудио, соответственно), а когда Chromium — только на один (аудио). Выглядит так, как будто Chromium просто игнорит факт наличия видео.
Куда копать? Вниз не предлагать, вдоль тоже.
Скорее всего проблема всё же с кодеками. Могут быть проблемы с h264.
Попробуй оставить только vp8, убедится, чтобы выбирался только он, убедиться, что он проходит через Asterisk и тестить такую схему с chromium.
Говорю же — тасовал кодеки. Да, SDP показывает, что выбирается именно тот кодек, который хочу. Но будь то VP8, VP9 или H.264 — всё одинаково. Проблема в каком-то согласовании медиапотока, что ли.
Да, где-то что-то не согласовывается. Но это всё крутится вокруг SDP и кодеков/параметров кодеков.
Можешь показать INVITE, OK, с SDP.
У терминатора в OK заялвяется только H264 в качестве видео-кодека, у оригинатора и VP8 и VP9 и целая вереница H264. Теоретически, все должно быть окей, я не вижу каких-то проблем, но по моему опыту именно у chrome/chromium часто какие-то проблемы.
Я советую попробовать включить VP8 (VP9) везде и попробовать. Если прокатит с этим кодеком, то дальше уже копать в сторону согласования H264, если и с VP8 (VP9) не сработает, значит проблема в чём-то другом. У орингинатора тоже стоит вырубить H264.
Но вроде всё выглядит окей. Единственное что меня волнует, это то что в OK нет указания профиля для H264, хотя в обоих случаях «level-asymmetry-allowed=1», но хз насколько это реально срабатывает. Может быть ожидание совсем разных потоков.
Ещё нужно проверить, а действительно ли в chromium стоит поддержка проприетарных кодеков. Я помню, что там были какие-то косяки с этим в сравнении с проприетарным chorme.
советую попробовать включить VP8 (VP9) везде и попробовать
Да говорю же, пробовал и VP8, и VP9.
в OK нет указания профиля для H264
В ФФ, кстати, profile-level-id есть в OK, если ты об этом.
действительно ли в chromium стоит поддержка проприетарных кодеков
Похоже на ограничение по размеру SDP. Попробуй оттуда повыкидывать все лишнее, чтобы в полтора килобайта влезло.
Интересно. А с чего это, и как это сделать? Допустим, аудиокодеки выброшу все, кроме Opus'а, а ещё?
Короче, выкинул лишние кодеки и IPv6, размер ужался, но ничего не поменялось.
Читайте также: