description
功能:将音视频数据转换成rtp包
usage examples
安装av库
pip uninstall av && pip install av --no-binary av
提供了四个转换函数,支持传入原始文件和字节数据两种方式,具体使用方式请参考下面的示例:
from pydub import AudioSegment
import cv2
from time import sleep, time
if __name__ == '__main__':
ip_address = "127.0.0.1"
port = 7777
image_file = "/Users/a58/Code/python/rtp/images/frame_0.png"
image_files = ["/Users/a58/Code/python/rtp/images/frame_%d.png" % i for i in range(5)]
audio_file = "/Users/a58/Code/python/rtp/audios/bgroup.wav"
audio_16k_file = "/Users/a58/Code/python/rtp/audios/bgroup16k.wav"
frame_size = (1080, 1920) # (width, height)
rtpSender = RTPSender(ip_address, port, frame_size, hard_encode=False, open_log=True, days=7)
rtpSender.stop()
rtpSender = RTPSender(ip_address, port, frame_size, hard_encode=False, open_log=True, days=7)
audio = AudioSegment.from_file(audio_16k_file, format="wav")
audio_data = audio.raw_data
i = 0
cnt = 0
t1 = time()
init_cnt = 2
imgs = [cv2.imread(image_file) for image_file in image_files]
frame_cnt = 0
while True:
for img in imgs:
if i >= len(audio_data) - 640:
i = 0
for j in range(25):
# print("time: ", time())
rtpSender.send_video_rtp_from_img(img)
# rtpSender.send_video_rtp_from_img(img)
# if packets_len > 0:
# print("packets_len: ", packets_len, ", frame_cnt: ", frame_cnt)
frame_cnt += 1
rtpSender.send_audio_rtp_from_bytes(audio_data[i:i+640], True)
i += 640
rtpSender.send_audio_rtp_from_bytes(audio_data[i:i+640], True)
cnt += 1
i += 640
t2 = time()
t = t1 + cnt*0.04 - t2
# print("t: ", t)
if t > 0:
# print("sleep: ", t)
sleep(t)
# img = cv2.imread(image_file)
# rtpSender.send_audio_rtp_from_file(audio_file)
# t1 = time()
if init_cnt < 20:
rtpSender.stop()
rtpSender = RTPSender(ip_address, port, frame_size, hard_encode=False, open_log=True, days=7)
init_cnt += 1
print("reinit rtpSender: ", init_cnt)
# 只支持采样率48000HZ,单通道 20ms
# rtpSender.send_audio_rtp_from_file(audio_file)
# img = cv2.imread(image_file)
# rtpSender.send_video_rtp_from_img(img)
# audio = AudioSegment.from_file(audio_file, format="wav")
# audio_data = audio.raw_data
# # 只支持采样率48000HZ,单通道 20ms
# rtpSender.send_audio_rtp_from_bytes(audio_data)
Releases
| Release Version | Release Date | Updates |
|---|---|---|
| v3.8.8 | 2024-09-14 | 在v3.8.6的基础上,增加平均耗时日志 |
| v3.8.6 | 2024-09-14 | 增加编码和发送耗时日志 |
| v3.8.4 | 2024-09-13 | 在v3.8.3的基础上,增加时间日志 |
| v3.8.3 | 2024-09-11 | 在v3.8.0的基础上,暴露gop参数 |
| v3.8.2 | 2024-09-06 | 删除测试代码 |
| v3.8.1 | 2024-09-06 | 引入多进程 |
| v3.8.0 | 2024-09-04 | 设置码率为600k |
| v3.7.9 | 2024-08-29 | 添加控制台日志开关 |
| v3.7.8 | 2024-08-29 | 使用loguru记录日志 |
| v3.7.7 | 2024-08-29 | Bug fixes |
| v3.7.5 | 2024-08-29 | 添加滚动日志,保存日志到文件 |
Metadata
Release files for StreamSenderSDK 3.9.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| streamsendersdk-3.9.4.3.tar.gz | 2.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| StreamSenderSDK-3.9.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.2 kB
Release files / streamsendersdk-3.9.4.3.tar.gz
| Download URL | streamsendersdk-3.9.4.3.tar.gz |
|---|---|
| Size | 2.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
33d7ecd31e1ea2fb67b9c460d6f6a509e4b0176e6f50dd34b7b3c758cdaf7f5d
|
|
BLAKE2b-256 checksum How to use checksums |
16278a70fb593cddbc01a915b711a72da807b0d666e15563f8925234099524dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|
Release files / StreamSenderSDK-3.9.4.3-py3-none-any.whl
| Download URL | StreamSenderSDK-3.9.4.3-py3-none-any.whl |
|---|---|
| Size | 2.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
05a4734d0c0c37d2707bb7e09812b0c2defcccd0b65616f4bbd5aab50351374c
|
|
BLAKE2b-256 checksum How to use checksums |
f27e6ee53b2fcbe13b3bca4f529404ae5efe95fa6da9b68e37e22fdbf812f429
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|