I'm using the pod 'libjingle_peerconnection' version (11177.2.0) at IOS.
The cpu runs at 103% (Iphone) when I'm making an audio to audio call on an and to an IOS device. It seems that it is an bug.
Because the PacerThread runs very high. So I was searching at that issue and more people have that problem:
https://bugs.chromium.org/p/webrtc/issues/detail?id=5506
At that topic the bug is marked as fixed. Nice:). But how can I get an updated library? I can't find anywhere an newer version.
Is it possible to build the libjingle_peerconnection for IOS myself with all the webrtc bug fixes included?
Thank you very much!
You can build it yourself using the following steps:
Checkout depot_tools using:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"
Fetch webrtc source code using:
fetch --nohooks webrtc_ios
gclient sync
Build your library using:
cd src
webrtc/build/ios/build_ios_libs.sh
use the following if you dont want the framework but the static library:
webrtc/build/ios/build_ios_libs.sh -b static_only
Source: https://webrtc.org/native-code/ios/
Related
I saw a few peoples managed to build flutter apps for other OS than the usual Android/IOS
My question here is simple : How ? What is the current process to build a flutter app for mac/windows ? There's no need for it to be production ready. Something experimental is enough
For those wondering how to :
https://github.com/google/flutter-desktop-embedding
There's an example using openGL to render a flutter app
Run a Flutter project in Desktop
Step 1:
For Flutter to run on Desktop, we must be on the master channel, with the latest release. So run from cmd,
flutter channel master
and
flutter upgrade
Step 2:
Then we have to enable flutter desktop support.
set ENABLE_FLUTTER_DESKTOP=true
Step 3:
Then clone this repo and cd example directory.
Step 4:
Then replace the lib folder inside the example directory with our existing code, and replace the pubspec.yaml file, with our existing one.
Step 5:
Then run from terminal
flutter packages get
and
flutter run
You can find more info here.
You can check this link out
https://github.com/google/flutter-desktop-embedding
Still not stable but does a good job of rendering flutter apps on desktop
Here's something I found useful, it is currently in alpha version but does the job by enabling us to develop Mac and Windows apps in Flutter :
https://feather-apps.com/
For those who want to know the current state(2021), here is the startup project to help you test It for MacOS, Linux, Windows. The project heavily modified from official ci to build cross-platform easily. You might want to check the ci.yml If you want to build on certain platform without github-action.
In additional, go-flutter is also a valid option, that used go-lang and openGL to achieve cross-platform features.
If you want to know the difference between official and go-flutter, here is the issue about the details.
Following the instructions given here to build WebRTC for iOS. I did the gclient sync and download was successful. I was able to successfully check out the code, now I'm trying to configure the build. I'm using GN to configure as given in instructions, however I get this error: gn.py: Could not find gn executable at: ../Desktop/webRtc/buildtools/mac/gn
What am I doing wrong and how can I fix this?
Thanks!
This is my first time trying with Gstreamer for ios , I went with the tutorial and installed the SDK with the link provided by the tutorial:
http://docs.gstreamer.com/display/GstSDK/Installing+for+iOS+development
The installation works fine, but after I start trying the tutorial example projects, there couple of compiling errors compiling about missing gst/video/videooverlay.h . Then I looked into the header folder under the installed GStreamer header folder, there is no filed called video/videooverlay.h
Then I search online, found this information:
Gstreamer for iOS provided is out of date. I used the freedesktop packages
from https://github.com/braincorp/gstreamer_ios_tutorial
Then I downloaded another installation pkg for GStreamer
Then while I was trying to install the later version, the installer give me error saying:
you cannot install GStreamer 1.0 (Development Files) in this location.
Then I thought I might need to uninstall the previous version, but I couldn't finder a standard uninstallation option from the installer, then I searched online, find one post suggest remove the GStreamer folder under ~/Library/Developer
I have removed the installed folder, so I don't have any header files, but the new installer still gives the same error
I have been trying to figure this out for sometime, couldn't find useful info on line , I really appreicate any clue and help you might have!
Thanks!!
Jing
Answering my own question here..
not sure what's the issue, after restarting my mac, and run the installer couple of times with the same error, it suddenly worked ....... i am not sure what's the matter here, hope gstreamer team can improve the stability of the installer in the future.
At work we are currently trying to get the IOS tutorials from the streamer 1.0 sdk to run.
1) Compilation: Same thing: we managed to bootstrap (cerbero ... bootstrap) and compile (cerebra ... package streamer-sdk) using the official cerebero git repository.
But:
a) We had to mock around with the /cerbero/cerbero/enums.py file:
Add in the collection of supported old IOS (6.0, 6.1, 7.0, etc...) the one corresponding to our Xcode version : IOS 8.4
b) We had to customize the /cerbero/config/ios.config and iOS-universal.config files to get them to use the right architecture in our case: arm7v or arm7 instead of X64_86 or x86
c) We removed the not found is_asm() function from the x264 plugin's recipe file in the /cerbero/recipes.
For a reason we ignore, for all other platforms but IOS, the recipes check on the architecture available using:
if self.config.target_arch == Architecture.xxx:
of iOS is was using that missing function: is_asm(self.config.target_arch)
We replaced it by:
if self.config.target_arch == Architecture.ARMv7:
Compiling an iOS app using streamer:
So far it is a failure. we bumped into the same missing overlay.h header file. We couldn't find it anywhere.
DIFFERENCE between gstreamer.com (the sdk provider) and the official streamer website (free desktop.gsteamer.org):
We found out that gstreamer.com is clearly a commercial goal company that is making available the sdk, that people struggle on with for IOS (tested and working fine on linux) and the official website is providing the gstreamer library only without an sdk.
So this is what we are trying to use instead as of today.
Versions infos:
sdk (from gstreamer.com): current cerbero git master branch: git clone git://anongit.freedesktop.org/gstreamer-sdk/cerbero
official gstreamer library:
http://gstreamer.freedesktop.org/data/pkg/ios/1.5.2/
I want to build vlc for iOS.
My environment is MacOS 10.8.3, Xcode4.6.2 with iOS6.1 SDK.
I cloned the vlc lib form https://github.com/videolan/vlc.git, cd into the /extras/package/ios, and run the build.sh in terminal, everything goes okay except when I start making the chromaprint, I got this error:
FFTW3 lib not found. Set FFTW3_DIR to find it.
CMake Error at CMakeLists.txt:114 (message):
Neither FFmpeg with avfft.h nor FFTW3 found
This is because chromaprint needs the fft library, it will find FFMPEG and also FFTW3.
I want to use the FFMPEG for an fft calculation, so I have download a copy of ffmpeg source code and complied it,the libs and headers are in the directories: /Users/king/ffmpeg/complied/include and /Users/king/ffmpeg/complied/lib,
then I set the FFMPEG_ROOT as /Users/king/ffmpeg/complied in the cmake/modules/FindFFmpeg.cmake, just before the FIND_PATH() function.
something like : set(${FFMPEG_ROOT} /Users/king/ffmpeg/complied)
,I hope the FIND_PATH() can find the releated libs and headers, this doesn't work.
So my question is, How do i set the FFMPEG path or FFTW3_DIR for chromaprint?
Thanks in advance, I am really run out of my head!
I have same problem on VLC Windows cross build.
After I upgrade cmake to 3.22.0, this problem is fixed.
I download latest cmake source code and build.
I also download fftw3 package and extracted under /home/[username]/fftw3.
Set FFTW3_DIR to ~/fftw3 by
export FFTW3_DIR=/home/[username]/fftw3
I was successfully able to build WebRTC on MAC following these instructions: http://www.webrtc.org/reference/getting-started
Has anyone successfully built it on iOS? I understand that someone (arik) has successfully built it on iOS: https://groups.google.com/forum/#!msg/discuss-webrtc/VJg-fk2-i_0/dtG200DOzsgJ But the steps are not clear.
Can someone (who built on ios) summarize the steps so that it will be useful for everyone trying it in the future?
I wrote a detailed blog post with all of the instructions on how to build the WebRTC example iOS application, as well as how to run it on the iOS simulator or an actual iOS device. You can take a look here to read the details, it's a pretty lengthy process.
Yes, compiling for iOS was a very painful task... especially getting it work in Xcode.
Here's my attempt to get AppRTC Demo for ios
Clone/Pull: https://github.com/pristineio/webrtc-build-scripts
After getting the repo, then open the xcode project within the ios directory. Set the target to WebRTC Dance, then execute. At this point the scripts will update depot_tools and do all the dirty work (pull, modify, build) so that your target for AppRTCDemo will able to resolve the missing files and execute.
Once that completes, you can change the target to AppRTC Demo with a simulator or a real device, click run and it should execute. There's more detailed information in the guide linked in there and updates in the readme.
If you are wondering what gets ran under the hood, check out the build.sh file in the ios directory of the git repo. The dance function is what's actually getting executed for you when you select WebRTC Dance.
Its not really easy to describe the build process (way too much going on) but the build scripts repo should definitely point you in the right direction and help you get AppRTCDemo on ios 'just work'
There's also a google developers video posted here, where they try and break down the build process so you can build for ios (the youtube title is misleading).
Also, I just added cocoapods support for ios webrtc, add this to your Podfile,
pod "libjingle_peerconnection"
# Add this to the bottom so it won't have issues with active architecture
post_install do |installer_representation|
installer_representation.project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
config.build_settings['VALID_ARCHS'] = ['armv7', 'i386']
end
end
end
Not all the revisions are built, so check out the the cocoadocs for which revisions are available
I have been working in this space for the past few months now - webrtc on iOS is not easy. To help this problem I have added a github repo with a working example of and iOS app using webrtc.
https://github.com/gandg/webrtc-ios
The site references the google code site as well, so it should be a helpful starting point.
Well, it's been a long time to answer this post. But, I hope someone might
get better intuition from it.
I have been dealing with webrtc compilation processes for iOS and Android platforms. This process is really simple if you follow each step efficiently. To compile the library for iOS, follow the below-given commands and make sure you're using the same(only-1) tab of Mac terminal for WebRTC Native Compilation Setup as follows:
Prerequisites
Link Xcode with Command line
Setup depot_tools
Fetch Code for Development
Selection of Branch
Compile Library (iOS Framework)
1. Prerequisites:
First of all, make sure of the following things that you have already installed, if not then use these commands to do that:
- sudo add-apt-repository ppa:openjdk-r/ppa
- sudo apt-get install openjdk-8-jdk
- sudo apt-get install pkg-config
- sudo apt-get update
Please also install python==2.7, if it's not already installed.
2. Link Xcode with Command line:
- sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
- sudo xcode-select --switch /Library/Developer/CommandLineTools
3. Setup the Depot_tools:
- git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
- export PATH="$PATH:${HOME}/depot_tools"
After that, start the following steps one by one. Every step takes its own time based on the machine specs and internet speed, so make sure every step is completed without interruption.
4. Fetch Code:
- mkdir webrtc_ios
- cd webrtc_ios
- fetch --nohooks webrtc_ios
- gclient sync
5. Select Branch-head:
- cd src
- ./build/install-build-deps.sh
- git checkout origin/master
- git branch
6. To compile every time:
Make sure you are in the webrtc_ios/src/ directory, then simply run this command:
- ./tools_webrtc/ios/build_ios_libs.sh
It turns out that you will end up with the compilation and building of WebRtc Framework holding Webrtc Header Files. You can simply drag and drop this framework into your Xcode production environment or simply import it.
As you have set up your compilation environment, now every time you make changes into your native stack, you can simply run this command ./tools_webrtc/ios/build_ios_libs.sh to generate an updated framework.
If you end up with an issue regarding the compilation of webrtc framework. Please follow these steps. Make sure you're in this directory webrtc_ios/src/:
- git checkout origin/master
# To make sure you're using origin/master
- git branch
- gclient revert
- gclient sync
- ./tools_webrtc/ios/build_ios_libs.sh
And hopefully, you will have your issues sorted. I always recommend you guys that You can check out a branch that would be behind the origin/master and doesn't have all dependencies and modules over there which are necessary to build webrtc framework for iOS. So, Please always checkout to branch/head of webrtc native stack
Now, if you tried with these both procedures to build the WebRTC such as:
1- Using Bash Build Tools (./tools_webrtc/ios/build_ios_libs.sh)
2- Using Manual Compilation
Examples
$ # debug build for 64-bit iOS
$ gn gen out/ios_64 --args='target_os="ios" target_cpu="arm64"'
$ # debug build for simulator
$ gn gen out/ios_sim --args='target_os="ios" target_cpu="x64"'
2.1- Compiling (ninja -C out/Debug)
Both procedures will work.
This seems to build some of the modules: https://code.google.com/p/webrtc/issues/detail?id=1421#makechanges