Figure 1. Stream camera framework.
Twitch is a live-streaming platform similar to
YouTube and other entertainment services. It allows developers to express their
creativity by creating programs for streaming data such as video, audio, and
chat.
Twitch is a free solution for regular users who
don’t have or don’t want to rent a VPS to develop RTMP services for video
streaming. Twitch can be connected to an IP camera or other software tools loke
OBS for video streaming.
In this study, the author proposes a framework
for streaming video from a parking lot camera to Twitch. Figure 1 shows a brief visualization of the
proposed framework. The objective of this proposed framework is to provide an
inexpensive solution for online video streaming using components that can
easily be gathered from the market.
The components are consist of :
- 1.
The
rear park assist dash camera has a 170-degree wide-angle view.
- 2.
Easy
CAP
- 3.
Python
source code that streams incoming video data from Easy CAP to Twitch.
- 4.
Twitch
the live streaming titan of the internet
The rear park assists dash camera’s output is
in an analog signal form, which is the RCA standard for video data. The video
analog output is captured and converted into digital data that can be
recognized by any programming language with Easy CAP device.
Easy CAP is a generic name for an inexpensive,
widely available USB video capture adapter. These small devices, which resemble
dongles, are designed to capture analog audio and video signals from sources
such as VHS players, camcorders, DVD players, and older video game consoles.
This device can convert analog signals into a digital format on a computer. The
digital video data is then managed and transmitted using a Python source code,
enabling it to live on Twitch.
This is the source code that was used to stream
video data to Twitch (https://www.twitch.tv/).
The source code uses the Python programming
language.
This code requires a combination of ingest
endpoints to speed up streaming video, which can be accessed at https://help.twitch.tv/s/twitch-ingest-recommendation?language=en_US as well as a stream key,
which can be accessed at https://dashboard.twitch.tv/. The ingest endpoints and stream
key are then located in the RTMP_URL variable.
|
import cv2 import subprocess
# --- Configuration --- # Webcam capture settings WEBCAM_INDEX = 1 # Default webcam FRAME_WIDTH = 640 FRAME_HEIGHT = 480 FPS = 30
# RTMP server URL RTMP_URL = 'rtmp://jkt02.contribute.live-video.net/app/live_1329481927_EzJgamxsFHyjz8GT5YN14FsI86blUT'
# --- FFmpeg Command --- # This command is configured to receive raw video
data from the script, # encode it to H.264, and stream it to the RTMP
server. ffmpeg_cmd = [ 'ffmpeg', '-y', # Overwrite output file if it exists '-f', 'rawvideo', '-vcodec', 'rawvideo', '-pix_fmt', 'bgr24', # OpenCV provides frames in BGR format '-s', f'{FRAME_WIDTH}x{FRAME_HEIGHT}', '-r', str(FPS), '-i', '-', # Input from stdin '-c:v', 'libx264', '-pix_fmt', 'yuv420p', '-preset', 'ultrafast', '-f', 'flv',
RTMP_URL ]
# --- Main Streaming Logic --- def stream_webcam(): """
Captures the webcam feed and streams it to the RTMP server.
""" # Start the FFmpeg subprocess process
= subprocess.Popen(ffmpeg_cmd, stdin=subprocess.PIPE)
# Open the webcam cap = cv2.VideoCapture(WEBCAM_INDEX) cap.set(cv2.CAP_PROP_FRAME_WIDTH, FRAME_WIDTH) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, FRAME_HEIGHT) cap.set(cv2.CAP_PROP_FPS, FPS)
if not cap.isOpened(): print("Error: Could not open webcam.") return
print("Streaming to RTMP server. Press 'q' to
quit.")
while True: ret, frame = cap.read() if not ret:
print("Error:
Could not read frame.")
break
# Write the frame to the stdin of the FFmpeg
subprocess try:
process.stdin.write(frame.tobytes()) except (BrokenPipeError, IOError):
# FFmpeg process has closed
print("FFmpeg
process closed. Exiting.")
break
# Display the frame (optional) cv2.imshow('Webcam Feed', frame) if cv2.waitKey(1) & 0xFF == ord('q'):
break
# --- Cleanup --- print("Stopping stream.") cap.release() process.stdin.close() process.wait() cv2.destroyAllWindows()
if __name__ == '__main__':
stream_webcam()
|
REFERENCES
:
How to
connected the IP cam to Twitch : https://www.cctvcameraworld.com/live-streaming-cameras/how-to-stream-ip-camera-to-twitch.html?fbclid=IwY2xjawLXKZ5leHRuA2FlbQIxMABicmlkETFrcXRPM3g0eVlKNGp2WlRjAR79S9xdMXnpa5YbtfIFT7so7KEd8HpBiSiz-MN8NMTAXI_IxXTNXf5O-lrEnw_aem_J-oOgSQ9RdJr49DS8zUcSw
No comments:
Post a Comment