赞
踩
推荐安装 PotPlayer 64 bit。此播放器可以打开推流链接进行播放。
建议在python环境中安装:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host https://pypi.tuna.tsinghua.edu.cn
pip install ffmpeg
mediamtx
的github地址为:https://github.com/bluenviron/mediamtx/releases。mediamtx_v1.6.0_linux_amd64.tar.gz
。# 解压mediamtx,解压后有三个文件:mediamtx、mediamtx.yml和LICENSE
tar -vxzf mediamtx_v1.6.0_linux_amd64.tar.gz
# 运行 mediamtx,保持其一直运行不退出
./mediamtx &
ffmpeg -re -stream_loop -1 -i 123.mkv -c copy -f rtsp rtsp://0.0.0.0:8554/stream
其中:
123.mkv
: 是本地视频文件;rtsp://0.0.0.0:8554/stream
: mediamtx运行后,rtsp的端口为8554,可修改mediamtx.yml改为其他端口。import cv2 import subprocess as sp rtspUrl = 'rtsp://0.0.0.0:8554/stream' #这里改成本地ip,端口号不变,文件夹自定义 # 视频来源 地址需要替换自己的可识别文件地址 filePath='123.mkv' camera = cv2.VideoCapture(filePath) # 从文件读取视频 # 视频属性 size = (int(camera.get(cv2.CAP_PROP_FRAME_WIDTH)), int(camera.get(cv2.CAP_PROP_FRAME_HEIGHT))) sizeStr = str(size[0]) + 'x' + str(size[1]) fps = camera.get(cv2.CAP_PROP_FPS) # 30p/self fps = int(fps) hz = int(1000.0 / fps) print('size:'+ sizeStr + ' fps:' + str(fps) + ' hz:' + str(hz)) # 视频文件输出 fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter(filePath+'res_mv.avi',fourcc, fps, size) # 直播管道输出 # ffmpeg推送rtmp 重点 : 通过管道 共享数据的方式 command = [ 'ffmpeg', # 're',# # '-y', # 无需询问即可覆盖输出文件 '-f', 'rawvideo', # 强制输入或输出文件格式 '-vcodec','rawvideo', # 设置视频编解码器。这是-codec:v的别名 '-pix_fmt', 'bgr24', # 设置像素格式 '-s', sizeStr, # 设置图像大小 '-r', str(fps), # 设置帧率 '-i', '-', # 输入 '-c:v', 'libx264', '-pix_fmt', 'yuv420p', '-preset', 'ultrafast', '-f', 'rtsp',# 强制输入或输出文件格式 rtspUrl] #管道特性配置 # pipe = sp.Popen(command, stdout = sp.PIPE, bufsize=10**8) pipe = sp.Popen(command, stdin=sp.PIPE) #,shell=False # pipe.stdin.write(frame.tostring()) while (camera.isOpened()): ret, frame = camera.read() # 逐帧采集视频流 if not ret: break ############################图片输出 # 结果帧处理 存入文件 / 推流 / ffmpeg 再处理 pipe.stdin.write(frame.tostring()) # 存入管道用于直播 out.write(frame) #同时 存入视频文件 记录直播帧数据 camera.release() out.release()
注:由于opencv只能处理图像,因此这种推流没有声音。
使用PotPlayer 64 打开rtsp://127.0.0.1:8554/stream
。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。