标签: video-capture

按住按钮即可使用 AVFoundation、Swift 3 录制视频

我正在尝试弄清楚如何使用AVFoundationSwift 录制视频。我已经创建了一个自定义相机,但我只知道如何用它拍摄静态照片,但不知道如何录制视频。希望你能帮我解决这个问题。

我想按住 takePhotoButton 录制视频,然后在我预览当前静态照片的地方预览视频。您的帮助将真正帮助我继续我的项目。多谢!

import UIKit
import AVFoundation

@available(iOS 10.0, *)
class CameraViewController: UIViewController,AVCaptureVideoDataOutputSampleBufferDelegate {

let photoSettings = AVCapturePhotoSettings()
    var audioPlayer = AVAudioPlayer()
    var captureSession = AVCaptureSession()
    var videoDeviceInput: AVCaptureDeviceInput!
    var previewLayer = AVCaptureVideoPreviewLayer()
    var frontCamera: Bool = false
    var captureDevice:AVCaptureDevice!
    var takePhoto = false

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        prepareCamera()
    }

    func prepareCamera() {
        captureSession.sessionPreset = AVCaptureSessionPresetPhoto

        if let availableDevices = AVCaptureDeviceDiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaTypeVideo, position: .back).devices { …
Run Code Online (Sandbox Code Playgroud)

video video-capture avfoundation ios swift

2
推荐指数
1
解决办法
3303
查看次数

VideoCapturer 切换摄像头

我正在使用 webrtc 示例代码从 Android 设备流式传输到网页。示例代码不具备切换摄像头的功能。我试图解决它,但失败了。该示例使用 VideoCapturerAndroid 类,我发现切换相机使用不同类型的所有建议。

示例的主要部分如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_video_chat);
    ButterKnife.bind(this);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    Bundle extras = getIntent().getExtras();

    if (extras == null || !extras.containsKey(Constants.USER_NAME)) {
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        Toast.makeText(this, "Need to pass username to VideoChatActivity in intent extras (Constants.USER_NAME).", Toast.LENGTH_SHORT).show();
        finish();
        return;
    }
    this.username = extras.getString(Constants.USER_NAME, "");
    this.mCallStatus = (TextView) findViewById(R.id.call_status);

    // First, we initiate the PeerConnectionFactory with our application context and some options.
    PeerConnectionFactory.initializeAndroidGlobals(
            this,  // Context
            true,  // Audio Enabled …
Run Code Online (Sandbox Code Playgroud)

java android video-capture android-camera webrtc

2
推荐指数
1
解决办法
2820
查看次数

从 Granicus 下载视频

我在最近的一次市议会会议上发言了几分钟。我想下载视频,以便抓取我的视频部分并将其发布到社交媒体。该市使用一些名为 Granicus 的提供商。这是网址:

整个视频的 URL

有人能帮帮我吗?我尝试下载 VLC,但无法打开流。

video video-capture video-streaming

2
推荐指数
1
解决办法
2581
查看次数

cv2.videoCapture 仅返回“uri 中缺少端口”

首先感谢您的关注。我正在尝试使用 opencv 和 ip 摄像头进行流式传输,但它只返回“[tcp @ 000001d5fce13580] uri 中缺少端口”。我已经在 VLC 上进行了测试,并且还使用 JavaCV 进行了测试,它适用于两者。我已经检查过 MPEG 了,没问题。有没有人经历过这个并且可以提供帮助?

我和:

  • WIN10
  • OpenCV 4.5.1

代码:

import numpy as np
import cv2


def runCam():
    print(cv2.getBuildInformation())
    video_src = "rtsp://admin:myPWCam@192.168.1.223:554/Streaming/channels/1/"
    cap = cv2.VideoCapture(video_src, cv2.CAP_FFMPEG)

    while True:
        ret, frame = cap.read()
        try:
            cv2.resizeWindow('Stream IP Camera OpenCV', 120300, 800)
            cv2.imshow('Stream IP Camera OpenCV', frame)
        except Exception as ex:
            template = "An exception of type {0} occurred. Arguments:\n{1!r}"
            message = template.format(type(ex).__name__, ex.args)
            print(message)
            break

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break …
Run Code Online (Sandbox Code Playgroud)

python opencv video-capture stream

2
推荐指数
1
解决办法
1828
查看次数

自定义视频录制屏幕

我正在尝试实现一个应用程序,当启动时,我的自定义视频录制屏幕自动启动视频录制,我自己的按钮停止录制和其他按钮.我所做的是设计按钮的布局,直到现在,但如何在后台添加视频录制屏幕..请帮助.

android video-capture android-camera android-camera-intent

1
推荐指数
1
解决办法
1万
查看次数

从网络摄像头捕获图像并显示它 - OpenCV - Eclipse - Windows

我是OpenCV的新手,我想显示我的网络摄像头看到的OpenCV.我正在使用C编码语言.

我试过这段代码:

#include <stdio.h>

#include <cv.h> // Include the OpenCV library
#include <highgui.h> // Include interfaces for video capturing

int main()
{
    cvNamedWindow("Window", CV_WINDOW_AUTOSIZE);
    CvCapture* capture =cvCreateCameraCapture(-1);
    if (!capture){
        printf("Error. Cannot capture.");
    }
    else{
        cvNamedWindow("Window", CV_WINDOW_AUTOSIZE);

        while (1){
            IplImage* frame = cvQueryFrame(capture);
            if(!frame){
                printf("Error. Cannot get the frame.");
                break;
            }
        cvShowImage("Window",frame);
        }
        cvReleaseCapture(&capture);
        cvDestroyWindow("Window");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的网络摄像头的指示灯亮起,但结果是一个完全灰色的窗口,没有图像.

你能帮助我吗?

c webcam opencv video-capture frame

1
推荐指数
1
解决办法
5940
查看次数

在rails 4中使用网络摄像头录制视频

我们正在开发一个网站,您可以在其中上传有关教程的视频,它看起来像某个机构的视频存储库.我们想出了一个用户可以将视频直接录制到网站并上传标题,说明等内容的想法.我们将在rails框架上使用ruby.除了使用闪光灯和银光之外,有谁知道如何制作它?好吧,我搜索一些,发现一些,但案例是当用户停止录制时,它自动上传文件...用户可以放一些标题或描述等..而这个例子是在php,这就是为什么它对我来说是一个问题我怎么能在铁轨上做到这一点

提前致谢

video-capture ruby-on-rails-4

1
推荐指数
1
解决办法
3806
查看次数

使用最少的CPU处理时捕获avconv/ffmpeg网络摄像头

我有一个关于avconv(或ffmpeg)用法的问题.

我的目标是从网络摄像头捕获视频并将其保存到文件中.另外,我不想使用太多的CPU处理.(我不希望avconv扩展或重新编码流)

所以,我正在考虑使用来自网络摄像头的压缩mjpeg视频流并直接将其保存到文件中.

我的网络摄像头是Microsoft LifeCam HD 3000,它的功能是:

ffmpeg -f v4l2 -list_formats all -i /dev/video0

Raw: yuyv422 : YUV 4:2:2 (YUYV) : 640x480 1280x720 960x544 800x448 640x360 424x240 352x288 320x240 800x600 176x144 160x120 1280x800

Compressed: mjpeg : MJPEG : 640x480 1280x720 960x544 800x448 640x360 800x600 416x240 352x288 176x144 320x240 160x120
Run Code Online (Sandbox Code Playgroud)

什么是avconv命令直接保存压缩流而不使用avconv进行缩放或重新编码.

现在,我正在使用此命令:

avconv -f video4linux2 -r 30 -s 320x240 -i /dev/video0 test.avi
Run Code Online (Sandbox Code Playgroud)

我不确定这个命令是否具有CPU效率,因为我没有告诉任何地方使用网络摄像头的mjpeg压缩功能.

在开始记录文件之前,avconv是否负责配置网络摄像头设置?它始终是原始流的工作,并在原始流上进行缩放和enconding吗?

感谢您的回答

ffmpeg video-capture libav avconv webcam-capture

1
推荐指数
1
解决办法
6746
查看次数

cv2.VideoWriter不会使用fourcc h.264(使用Logitech c920,python 2.7,Windows 8)写入文件

我是python(2.7)和opencv(3.0)的新手(以及一般的视频流/编写),因此请原谅。

我正在使用Logitech c920作为我的网络摄像头,它可以流传输以h264格式压缩的视频,因此我试图编写一个简单的应用程序,该应用程序将VideoCapture实例的4个属性(fourcc设置为h264;宽度设置为1920;高度设置为1080;以及fps)到30),然后将视频录制到名为test.mp4的上一级目录,并在我的屏幕上显示该录制内容。这是代码:

import sys
import cv2 as cv

cap = cv.VideoCapture(0)
fourcc = cv.VideoWriter_fourcc('H','2','6','4')                     

cap.set(6, fourcc)
cap.set(3,1920)
cap.set(4,1080)
cap.set(5, 30)                                  

vid = cv.VideoWriter('../test.mp4', fourcc, 20.0, (640,480))     
print vid.isOpened() #returns false :(                                                       
while (cap.isOpened()):                                     

  ret, frame = cap.read()                                  

  if (ret == True):                                        

   #gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)          


   vid.write(frame)

   cv.imshow('window', frame)                           

   if (cv.waitKey(1) & 0xFF == ord('q')):                  
    break

cap.release()
vid.release()                                              
cv.destroyWindow('window')     
Run Code Online (Sandbox Code Playgroud)

cv.imshow('window',frame)正常工作,并且所有属性都已设置;但是,vid.isOpened()返回false,因此很明显我在上面做了错误的事情。如果我为fourcc传递-1,则可以从编解码器列表中进行选择,并且i420可用,并且说(对于Logitech摄像机),并且如果我将文件扩展名从mp4更改为avi,则vid.isOpened()返回true(我猜想这意味着i420无法存储为.avi?),但是test.avi总是很大,看似原始,几秒钟的测试视频只有100MB,无法打开。

任何帮助都会很棒,非常感谢

python opencv video-capture

1
推荐指数
2
解决办法
5081
查看次数

使用python和opencv保存视频时出错

这是从网络摄像头保存视频的代码

import numpy  
import cv2 
cap = cv2.VideoCapture(0)

# Define the codec and create VideoWriter object 
fourcc = cv2.VideoWriter_fourcc(*'XVID')  
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        frame = cv2.flip(frame,0)
        # write the flipped frame
        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

cap.release() 
out.release() 
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

当我运行它在python中它给出以下错误

> raceback (most recent call last):    File
> "C:\Users\Prakash\Desktop\Image Proccessing\c.py", line 6, in <module>
> fourcc = cv2.VideoWriter_fourcc(*'XVID')  AttributeError: 'module'
> object has no attribute 'VideoWriter_fourcc' …
Run Code Online (Sandbox Code Playgroud)

python opencv video-capture image-processing

1
推荐指数
1
解决办法
9639
查看次数