tSIP: video
tSIP version with video support was initially splited from version 0.2.11 into https://github.com/tomek-o/tSIP-video, based on the following reason:
- I believe that only small fraction of users would be interested in video
- video support adds some complications
- initially binary package with video support was ~45 MB larger than without (partially because I've using general-purpose, unoptimized FFmpeg libraries at the moment, later version switched to custom, minimal FFMpeg set)
- initially FFmpeg libraries (specifically avcodec-58.dll) were coming in two variants, GPL (that includes H.264 encoder) and LGPL (without H.264 encoder); later OpenH264 was used making licensing more flexible
- I don't have much experience with it yet, so integrating it immediately might backfire
Video support was later moved to main project, with the intention of building video and "regular" binaries from the same source code base. While video support is definitely not mature, compile-time switch enabling/disabling it seems to be good enough way to prevent from audio-only version being negatively affected.
Troubleshooting
Few unexpected (at least for me) things related to video calls:
- for calls from pjsip softphone to tSIP I had to enable in tSIP H.264 with matching packetization mode (or both modes), otherwise video was not working; in the other direction it was not important
- apparently two applications cannot use same camera same time under Windows - be aware of that when calling between two softphones on same PC
- H.263 requires one of the specific video resolutions, it does not work with 640x480 at the moment
- different camers offer different possible resolution sets and it affects also low resolutions:
- camera built into my Dell E6440 offers 352x288 (one of the resolutions required for H.263 if anyone would want to use it), 320x240 and even 176x144
- JOYACCESS JA-Webcam support 320x240 but not 352x288
- DRAGONTOUCH WB-20 ("HD 4MP WEBCAM") starts with 640x480
Binaries / releases
This branch of tSIP is not well-tested yet. Some essential features are missing. Backward compatibility in case of updates is not high on the priority list yet (configuration may change). Use at own risk.
- 2023.01.07 tSIP-video-20230107.zip - executable snapshot (only tSIP.exe).
For a complete package add files from regular tSIP release (images, wave files, DLLs etc.) and few new 32-bit video-related DLLs
from github (avformat-58.dll, avutil-56.dll, avcodec-58.dll, swresample-3.dll, SDL2.dll). In case of FFmpeg DLLs you have a choice
of LGPL and GPL versions. For avutil-56.dll, avformat-58.dll and swresample-3.dll this choice does not matter (so LGPL might be preferred),
but LGPL version of avcodec-58.dll is missing H.264 encoder. FFMpeg dll files I've used for this particular version are from newest 32-bit compilation by Zeranoe.
Notes:- two new settings pages: "Video" and "Video codecs" were added
- video support is enabled by default; there is no dedicated button (or button type) for toggling video on/off (e.g. to answer one call with video, other call without video) at the moment but Lua UpdateSettings() can be used for this purpose
- selfview is enabled by default, using picture-in-picture mode
- H.264 with packetization mode 0 and 1, H.264 and MP4V-ES video codecs are enabled by default
- video can be displayed either in separate window or on selected programmable button
- 2023.01.18 Initial "full" archive tSIP-video-0.2.11.4.7z + optional GPL avcodec-58.dll.
- 2023.02.04 Version 0.2.11.5 tSIP-video-0.2.11.5-bin.7z, tSIP-video-0.2.11.5-src.7z
- switching to custom, minimal FFMpeg build (only H.263, mpeg4 and H.264 with OpenH264 used as encoder)
- IMPORTANT I'm not distributing OpenH264, download http://ciscobinary.openh264.org/openh264-2.3.1-win32.dll.bz2 and extract it (using e.g. 7-zip), rename openh264-2.3.1-win32.dll to openh264.dll and put it next to application executable
OpenH264 Video Codec provided by Cisco Systems, Inc.
Full OpenH264 binary license: http://www.openh264.org/BINARY_LICENSE.txt.
Back to tSIP softphone