我是python的新手,我想做的是接收UDP流(来自VLC,H264),并对视频进行任何修改并显示它(Python2.7)。
我使用了openCV (openCV 2.4.9),我可以接收视频帧并对其进行修改。现在我需要做的是使用这些帧创建一个视频文件并显示它,我不需要同时保存帧和视频。
我尝试了FFMPEG,FFPLAY,它工作在保存的视频帧上。
如果您能指出步骤或任何其他选择,我将对此表示感谢。
首先,对我的解释感到抱歉。以下是我尝试过的:
这些步骤可以工作,但我不能物理地保存帧或视频文件。我需要做的是后第二步直接传递视频帧到FFMPEG,FFPLAY播放,而不保存在框架文件夹。
发布于 2014-07-17 14:57:12
command1 = 'ffmpeg -y -f image2pipe -vcodec mjpeg -r 23.97 -i - -vcodec mpeg4 -pix_fmt yuv420p -c:v libx264 -r 23.97 -f avi - '
command2 = 'ffplay -'
pipe1 = sp.Popen(command1,stdin=sp.PIPE,stdout=sp.PIPE)
pipe2 = sp.Popen(command2,stdin=pipe1.stdout)
While(cap.isOpened()):
success,raw_image = cap.read()
pil_im = Image.fromarray(raw_image)
pil_im.save(pipe1.stdin ,'JPEG')这对我有用,但有些颜色问题。
发布于 2018-09-20 11:20:13
您可以使用cv2.imshow()直接显示处理过的帧,而不是将它们传递给ffplay或ffmpeg,而不是在代码中编写框架。
import cv2
cap = cv2.VideoCapture("udp://224.1.1.1:1234")
while(cap.isOpened()):
success,image = cap.read()
......
......
cv2.imshow("Video", image)https://stackoverflow.com/questions/24678635
复制相似问题