После поиска в течение некоторого времени ни одно из предоставленных решений не работало для меня, так как в этой функции есть ошибка, и у меня не было времени исправить ее, мне не нужно было использовать окно cv2 для отображения фреймов. После того, как несколько кадров были сохранены, вы можете открыть файл в другом средстве просмотра, например, VLC или MoviePlayer (для linux).
Вот как я сделал.
import cv2
threadDie = True # change this to false elsewhere to stop getting the video
def getVideo(Message):
print Message
print "Opening url"
video = cv2.VideoCapture("rtsp://username:passwordp@IpAddress:554/axis-media/media.amp")
print "Opened url"
fourcc = cv2.cv.CV_FOURCC('X','V','I','D')
fps = 25.0 # or 30.0 for a better quality stream
writer = cv2.VideoWriter('out.avi', fourcc,fps, (640,480),1)
i = 0
print "Reading frames "
while threadDie:
ret, img = video.read()
print "frame number: ",i
i=i+1
writer.write(img)
del(video)
print "Finished capturing video"
Затем откройте файл с помощью другого средства просмотра, возможно, в более узкой функции, например, если вам нравится vlc, вы можете запустить его и передать сохраненный файл в качестве параметра. На терминале я бы сделал это
vlc out.avi #out.avi is my video file being saved by the function above.
Это сработало для меня в arch linux.
изменить:
изменить это в JavaScript:
var $j = jQuery.noConflict();
$j(function () {
$j(".wpb_wrapper").click(function () {
var fgfdgds = $j(this).attr('value');
var formData = new FormData();
formData.append("post_id", 'fgfdgds');
formData.append("action", 'my_action');
$j('.modal-body').attr('value', fgfdgds);
$j.ajax({
url: custom_script_object.ajax_url,
type: 'post',
data: formData,
processData: false,
contentType: false,
success: function (response) {
$j('.rml_contents').html(response);
console.log("it worked");
}
});
});
});