我想写一个简单的Linux CLI应用程序,可以拍摄2个视频源(1个演示者讲话,1个幻灯片,没有音频)并合并它们.
我希望整个输出视频是两个原创视频,并排.如果做不到这一点,我的第二个最佳选择将是"画中画"风格的视频,主持人在角落里的一个小框架中.
从几个小时研究,GStreamer的看起来可能能够做到这一点.任何人都可以在我花更多时间尝试之前确认吗?
如果不能,那么我可以使用其他API吗?
我试图创建一个程序来检测视频中的脸部.在接受"面子"之前,必须通过一些要求.毕竟的要求都满足我,然后要采取认为"面子"的框架和裁剪他们,使脸部对焦的区域.程序将遍历每一帧并执行此操作,然后拍摄新视频并将其制作成视频文件.
我从未使用过视频文件或图像文件,所以这对我来说都是新手.我目前正在编写用于确定面部是否被接受的所有算法,以及面部的定位.我还为该项目提供了一个视频处理器.视频处理器用于检测面部.如果检测到面部,视频会将面部标记为红色矩形,并给出面部的x和y坐标,以及面部的长度和宽度.
我完全不知道怎么做的程序的唯一区域是面部的实际裁剪,以及新框架(聚焦在面部上)在原始框架上的放置.
我也不确定如何制作视频文件.我假设它与创建文本文件的行相同,只是使用了不同的方法和类.它是否正确?如果不是我应该怎么做?
我仍然处于设计阶段(我有视频处理器和其他程序的设计,但我想确保在我告诉那个人我可以做之前我能够裁剪和放置面部).我有视频处理器的代码(它很长但我可以发布一些方法,如果需要).
我可以看一下什么好的资源或建议?
(我不知道最好的标签.随意添加/删除任何)
我有一个远程教育系统项目,我必须分割视频并通过网络分享.
我的问题是什么视频格式更好选择?我在哪里可以找到有关视频格式的规格细节?
如果我将视频分成几部分,它们是按顺序排列的吗?(例如:第二个视频帧正好位于第一个视频帧之后?)
我想通过在两个图像之间应用过渡动画来从图像列表制作动画视频.我在SO上发现了很多类似的问题,
所有类似的SO问题建议使用动画,但我们如何将动画图像存储到视频文件?是否有任何Android库支持此工具制作图像视频?
任何帮助表示赞赏...... !!! 提前致谢
我正在尝试为我的视频文件应用新的音频音调.
我想用android代码替换现有视频的音频.在android中有可能吗?任何人都可以帮助我这样做
是否有任何Android库支持此功能来更改视频文件的音频?
任何帮助表示赞赏...... !!! 提前致谢
所以..在图像处理中,lena是用于在研究社区中测试算法的标准图像.同样..是否有任何标准视频用于测试用于视频处理的MATLAB代码?
我正在尝试使用ffmpeg从视频文件中捕获帧,但我甚至无法获得视频的持续时间.每次当我尝试访问它时,pFormatCtx->duration 我都会得到0.我知道指针已初始化并包含正确的持续时间,因为如果我使用 av_dump_format(pFormatCtx, 0, videoName, 0);那么我实际上得到持续时间数据以及有关视频的其他信息.这是我使用时得到的av_dump_format(pFormatCtx, 0, videoName, 0);:
输入#0,avi,来自'futurama.avi':
持续时间:00:21:36.28,开始:0.000000,比特率:1135 kb/s
流#0.0:视频:mpeg4(高级简单配置文件),yuv420p,512x384
[PAR 1:1 DAR 4:3],25 tbr,25 tbn,25 tbc
流#0.1:音频:ac3,48000Hz,立体声,s16,192kb/s
我不明白为什么av_dum_format可以显示持续时间而我不能.我检查了函数定义,显示持续时间,该函数也使用pFormatCtx-> duration.当我在main.cpp中调用它们时,其他成员变量也不会显示正确的数据
这是我的main.cpp:
extern "C" {
#include<libavcodec/avcodec.h>
#include<libavformat/avformat.h>
#include<libswscale/swscale.h>
}
int main(int argc, char *argv[]) {
AVFormatContext *pFormatCtx = NULL;
const char videoName[] = "futurama.avi";
// Register all formats and codecs.
av_register_all();
cout << "Opening the video file";
// Open video file
int ret = avformat_open_input(&pFormatCtx, videoName, NULL, NULL) != 0;
if (ret …Run Code Online (Sandbox Code Playgroud) 我想给用户一个设置不同分辨率的选项.
我试过这个解决方案
camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_720P);
....
....
mCamera.unlock();
recorder.setCamera(mCamera);
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setProfile(camcorderProfile);
Run Code Online (Sandbox Code Playgroud)
它完美地工作:质量好,一切......
当我把它设置为
camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P);
Run Code Online (Sandbox Code Playgroud)
随着FLASH,视频出现了绿色和其他一些奇怪的颜色.
我在线阅读,人们说这是因为我的手机可能不支持QUALITY_480P.好吧,它会让人感觉到.
因此,我开始研究不同的解决方案,所以我试过......
recorder.setVideoSize(640, 480);
Run Code Online (Sandbox Code Playgroud)
效果很好,
但视频看起来非常难看.
接下来,我检查了支持的视频列表.
List<Size> GetSupportedVideosResolutions = params.getSupportedVideoSizes();
Run Code Online (Sandbox Code Playgroud)
分辨率:1280x720在列表中,所以
我试图设置以下内容:
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setVideoSize(1280,720);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
Run Code Online (Sandbox Code Playgroud)
它给了我一个RuntimeException错误.
问题是
为什么不能让我设置手机上可用的更高分辨率?
任何帮助将不胜感激,
谢谢.
编辑:添加了错误日志
04-18 17:40:07.391: E/AndroidRuntime(30191): java.lang.RuntimeException: start failed.
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.media.MediaRecorder.start(Native Method)
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity.prepare_StartRecorder(VideoActivity.java:1009)
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity.Recorder_Start_Stop(VideoActivity.java:1102)
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity$6.onClick(VideoActivity.java:246)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.view.View.performClick(View.java:4489)
04-18 17:40:07.391: E/AndroidRuntime(30191): …Run Code Online (Sandbox Code Playgroud) 我使用桥接头(将Swift连接到Objective C)和Objective C包装器(将Objective C连接到C++)在swift IOS项目中集成了opencv.使用这种方法,我可以从Swift代码传递单个图像,在C++文件中分析它们并将它们取回.
我已经看到opencv提供了可以与Objective C UIViewController集成的CvVideoCamera对象.
但是因为我的UIViewController是用Swift编写的,我想知道这是否可行?
我有一个来自e-con系统的摄像头,支持UYVU编解码器视频录制.当我使用他们自己的软件(QTCam)录制视频时,它以avi格式录制YUY2 Codec,视频打开并在VLC中完美运行.
现在我尝试通过Opencv VideoWrtiter()录制视频.我使用此命令将Camera属性设置为读取UYVY Codec视频.
camera1.set(CV_CAP_PROP_FOURCC,CV_FOURCC('U','Y','V','Y'));
Run Code Online (Sandbox Code Playgroud)
并且还使用VideoWriter以AVI文件格式录制视频.
video1.open("/home/camera1UYVY.avi",CV_FOURCC('Y','U','Y','2'),30,s1,true);
Run Code Online (Sandbox Code Playgroud)
来自相机的进纸工作,我用imshow()检查.但是,录制的视频不是在VLC播放,因为它适用于从QTCam录制的视频.
即使记录的重新编码的opencv也具有相同的编解码器
我的代码如下
#include <opencv2/core/core.hpp>
#include <opencv2/video/video.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/videoio/videoio.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char **argv) {
VideoCapture camera1;
Mat frame1;
camera1.open(0);
camera1.set(CV_CAP_PROP_FOURCC,CV_FOURCC('U','Y','V','Y'));
camera1.set(CV_CAP_PROP_FRAME_WIDTH,1280);
camera1.set(CV_CAP_PROP_FRAME_HEIGHT,720);
cout << "FPS:" << camera1.get(CV_CAP_PROP_FPS) << endl;
camera1.set(CV_CAP_PROP_FPS,30);
cout << "FPS:" << camera1.get(CV_CAP_PROP_FPS) << endl;
cout << "Camera -1 Codec: " << (int)camera1.get(CV_CAP_PROP_FOURCC) << endl;
VideoWriter video1;
cout << camera1.get(CV_CAP_PROP_FRAME_WIDTH) << endl;
cout << camera1.get(CV_CAP_PROP_FRAME_HEIGHT) …Run Code Online (Sandbox Code Playgroud)