Just finished my studies on python 3, build some app and I want to on to my main project. Please how can I build a video chat application using python
That is quite an ambition challenge! I would start by writing a GUI interface so that users can start/end/pause the video call and mute their camera or microphone. Tkinter, wxPython, and PyQt are a few decent ones. After that, I would do some research on networking and figure out how to send the video to and from each recipient. I would look into RTP (Real-Time Transport Protocol) for that. You could even establish a UDP connection between the two. The number of approaches are endless! I encourage you to do some more in-depth research before you begin.
**Note that this process would be different if you were to make a video chat website.
Best of luck!
Related
This is my first post so sorry if it’s worded wrong/ put in the wrong place.
I am currently designing a prototype product which has the ability to take an audio input (for example the master channel from a sound desk) through an audio interface, and then place it on a browser-based application for all devices on the local network to access, listen to and download.
Currently I believe the best way to do this would be via WebRTC hosted on a server, such as a Raspberry Pi or equivalent, where WebRTC is ran through Python Tornado/Flask in order to serve this to an HTTP page. I would like some advice on the best way to do this, or if you believe if there is a more efficient way to do this?
I was going to use the server to also act as a DHCP server as it will be for local environments only. Management features such as routing protocols, logging/debugging information and encryption handlers will also be displayed on this HTTP application.
I have attached a diagram of the topology that I am using, if I have not explained myself clearly.
Thanks.
Network Topology Image
I'm writing a python real-time chat feature embedded in a web app. I'm a little bit confused on the real time implementation. I need to push real time message to different users.
I plan to use websocket but I'm not quite sure how to save those sockets into an array so that once a user send a message to server, the server can find the related socket and push the message.
So any idea about this? Or what's the common way to implement real time chat feature?
Thanks in advance.
You need to use a websocket aware web server, like Tornado to handle websocket traffic. To multiplex chat messages between different chats and users, there are solutions like Redis and ZeroMQ that you can use for message multiplexing.
However, it sounds like you have zero experience and starting point, so starting with an working example is better approach. Please study existing real-time chat implementations for Python:
https://github.com/heroku-examples/python-websockets-chat
https://github.com/nellessen/Tornado-Redis-Chat
https://github.com/tornadoweb/tornado/blob/master/demos/websocket/chatdemo.py
http://ferretfarmer.net/2013/09/05/tutorial-real-time-chat-with-django-twisted-and-websockets-part-1/
Right now I am using this project here. It is a python script that runs a server using webrtc to send the clients/browsers webcam to the server and perform face recognition. What I want to do is do the same thing with a web cam or pi cam hooked up to the pi but without the use of the browser. Is there a way to do it with the current set up or is there a better method to accomplish this?
You can use the native library and connect it to the face recognition server. You can use either the google implementation of webrtc or a more recent implementation (by Ericsson) called openWebrtc. The developers of openWebRTC are very proud of running their implementation on various pieces of hardware like raspberry pi and iOS devices.
If you don't what to mess with a native library you can use a nodejs binding for webrtc (for example node-webrtc or easyrtc)
If you want a Python implementation of WebRTC, give aiortc a try. It features support for audio, video and data channels and builds upon Python's asyncio framework.
The server example illustrates both how to perform image processing on a video stream and how to send video back to the remote party. Aside from signaling there is no actual "server" or "client" role in WebRTC so you can also run aiortc on your raspberry pi and have it send video frames to whatever WebRTC endpoint you want.
I thinking about architecture of service with video streaming.
2 people call to each other in browsers with webcams (like group talks in google plus, but only 2 people). Their conversation dumping to server. Server know when conversation was started, when it was finished and which clients communicate.
At the backend I plan to use Python/Django. I don't have any ideas about what to use for streaming/frontend(html5, flash). I want to controle streaming process (dumping, start|stop conversation) using python.
What you can recommend to me?
I think you need to look at the following two -
http://videocapture.sourceforge.net/ #For video recording purpose
and
http://twistedmatrix.com/trac/ #For transmission over the network
Following example using Twisted might be of some help -
http://www.rtmpy.org/index.html
I would like to play around with coding an application that could capture a desktop or section of a screen (height and width variables for resolution) and stream those to an RTMP server (rtmp://server.com/live).
I saw something called rtmplite, but the description of this package is:
"This is a python implementation of the Flash RTMP server"
So I would ultimately like to achieve the following, but will implement it in pieces as I go along, without getting overwhelmed at the project scope:
Make connection to RTMP server (with authentication where needed) to channel on ustream.com, justin.tv/twitch.tv, own3d.tv, etc.
Ability to select height, width selection of desktop or entire desktop and stream live to that channel, as if I was using Flash Media Live Encoder.
Really I just want to make my own Python-based FMLE or Xsplit application so I can stream live on my own without using those applications.
Any libraries you can send me to read up on that explain this FMLE-clone type process or information would be helpful! Thanks
I did some RTMP streaming from python for the wiidiaplayer project: http://wiidiaplayer.org. This is by no means a full solution, but at least some RTMP functionality has been implemented in python there.
Unfortunately it has been a long time since I touched that code; if you have any questions feel free to ask them; I'm not sure how much of the answers I will be able to provide.