我试图在电报上发送带有pytgcalls
的usb网络摄像头的流。在文档中没有任何关于这一点,但有几个例子的流媒体youtube视频或本地mp4文件。我已经找到了一个youtube视频流的例子,我认为流式usb摄像头是非常相似的。首先,进口模块:
import asyncio
from pyrogram import Client
from pytgcalls import idle
from pytgcalls import PyTgCalls
from pytgcalls import StreamType
from pytgcalls.types.input_stream import AudioImagePiped, AudioVideoPiped
from pytgcalls.types.input_stream.quality import HighQualityVideo, HighQualityAudio, LowQualityAudio, LowQualityVideo
现在,开始热图和pytgcalls客户端:
app = Client('py-tgcalls', api_id=API_ID, api_hash=API_HASH)
call_py = PyTgCalls(app)
call_py.start()
声明将youtube链接转换为流的函数:
def get_youtube_stream():
async def run_async():
proc = await asyncio.create_subprocess_exec(
'youtube-dl',
'-g',
'-f',
'best[height<=?720][width<=?1280]',
# Some random YT link
'https://www.youtube.com/watch?v=AAAAAAA',
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE,
)
stdout, stderr = await proc.communicate()
return stdout.decode().split('\n')[0]
return asyncio.get_event_loop().run_until_complete(run_async())
在一组中声明通过电报发送流的功能:
def youtube():
remote = get_youtube_stream()
call_py.join_group_call(
# Group ID
-10011111111,
AudioVideoPiped(
remote,
HighQualityAudio(),
HighQualityVideo(),
),
stream_type=StreamType().pulse_stream,
)
现在可以执行函数youtube()
:
youtube()
使用idle()
阻止脚本:
idle()
这就是脚本,有人能帮我播放usb摄像头的实况吗?
发布于 2022-05-27 21:40:57
最近,通过pytgcalls (0.9.0)添加了从upd流中流的可能性,您可以直接使用ffmpeg捕获媒体设备并进行本地UDP流
https://stackoverflow.com/questions/71385435
复制相似问题