import queue
import threading
import cv2
import subprocess as sp
rtmpUrl = "rtmp://localhost:1935/live/test"
cap = cv2.VideoCapture(0)
fps = int(cap.get(cv2.CAP_PROP_FPS))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
command = ['ffmpeg',
'-y',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-pix_fmt', 'bgr24',
'-s', "{}x{}".format(width, height),
'-r', str(fps),
'-i', '-',
'-c:v', 'libx264',
'-pix_fmt', 'yuv420p',
'-preset', 'ultrafast',
'-f', 'flv',
rtmpUrl]
p = sp.Popen(command, stdin=sp.PIPE)
while True:
ret, frame = cap.read()
p.stdin.write(frame.tostring())
我将带领大家一起来亲手搭建“直播网站”,使用的技术包括:ffmpeg、python、nginx。通过本课程的学习,学员将明白直播网站的原理和实践,加深对直播的理解。主要内容包括:1、搭建nginx直播网站:使用源码方式编译nginx和rtmp模块。2、搭建ffmpeg环境,使用rtmp格式进行直播推流。3、搭建videojs环境,使用网页方式进行直播拉流。
一. 基本概念及原理
1.1 ffmpeg简介
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
1.2 RTMP简介
RTMP协议,又称实时消息传输协议(Real Time Messaging Protocol),该协议基于TCP,是一个协议族行,用于实时数据通信的网络协议,主要用来在Flash/AIR平台和支
Python推流本质是调用FFmpeg的推流进程,所以" pipe.stdin.write(img.tobytes()) "这句话报错时,可以考虑是FFmpeg没有配置的原因。
推流术语…省略。
import cv2
# subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。
import subprocess
# 视频读取对象
cap = cv2.VideoCapture(".../xx.mp4")
# 读取一帧
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
将文件bin目录路径添加到环境变量中,在cmd/终端中输入ffmpeg,出现以下内容说明已添加好
(windows)
这篇文章主要介绍了python处理RSTP视频流过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下python链接海康摄像头,并以弹出框的方式播放实时视频流,这种方式是以弹出框的形式播放。本地测试可以,实际业务场景不建议使用。可以采用rtsp转rtmp的方式@shared_taskdef parse_video(rtsp_address=No...
import cv2
capture = cv2.VideoCapture('http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8')
while True:
ret, frame = capture.read()
# frame = cv2.flip(frame,1) #镜像操作
cv2.imshow("video", frame)
key = cv2.waitKey(50)
#print(key)
if key == ord
在windows下用python + subprocess + ffmpeg实现推流,移植到树莓派后报错brokenpipeerror:[Error 32]Broken pipe 问题解决
教程https://codingchaozhang.blog.csdn.net/article/details/102732555?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_...