在我的程序中,它获取MP4视频,我希望它输出MP3(没有任何服务器端的东西.)因为Android(和我的应用程序)需要在许多不同的硬件配置上运行,这意味着我可能无法使用FFMPEG .我知道这可能是非常耗电量和处理能力,特别是对于手机,但我需要为我的用户提供此选项.我找不到任何不使用FFMPEG的Java本机库.
我正在尝试在iPhone上进行一些图像处理.我正在使用http://developer.apple.com/library/ios/#qa/qa2010/qa1702.html来捕捉相机帧.
我的问题是,当我试图访问捕获的缓冲区时,相机FPS从30下降到大约20.有人知道我该如何解决它?
我使用kCVPixelFormatType_32BGRA格式中我能找到的最低捕获质量(AVCaptureSessionPresetLow = 192x144).如果有人知道我可以使用的质量较低,我愿意尝试一下.
当我在其他平台上进行相同的图像访问时,比如Symbian,它可以正常工作.
这是我的代码:
#pragma mark -
#pragma mark AVCaptureSession delegate
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
/*We create an autorelease pool because as we are not in the main_queue our code is
not executed in the main thread. So we have to create an autorelease pool for the thread we are in*/
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
//Lock the image buffer
if (CVPixelBufferLockBaseAddress(imageBuffer, 0) == kCVReturnSuccess)
{ …Run Code Online (Sandbox Code Playgroud) 我有使用diff创建视频文件的场景.资产,如图像,音频文件.
我想要做的是,从特定文件夹中查找音频文件并将其设置为背景音乐,并从特定文件夹中获取图像并逐个显示这些图像.
所以基本上我有图像和音频文件,我想用PHP创建一个使用这些资产的视频文件.
任何人都可以为此建议起点吗?已经完成了从视频中捕获图像并使用Ffmpeg转换视频,所以我想到了Ffmpeg,但我认为它不允许创建视频.
我希望实现一个基于过滤器的O(n log n)算法来稳定业余视频.
我相信这对像Witness.org这样的项目来说是一个有用的工具.
我搜索过这样的东西,并且发现了Gunnar Thalin的Deshaker和Youtube的内置编辑功能.这些算法并不像我认为的那样高效.
我错过了什么吗?还有其他类似的项目吗?请告诉我.
谢谢.
项目:在视频的每一帧上添加运行日期/时间戳.(数码摄像机的结果,我的父亲问我如何将时间戳(毫秒分辨率)永久添加到视频中.
一位朋友把我指向opencv(实际上是emgucv),由于我的喜好,我在python中尝试了opencv.
文档是蹩脚的,我甚至很难(只花了5个小时左右)来安装软件包.资料来源:
我正在使用Windows 7 x64,所以我不得不降级我的python以使用numpy(win64没有numpy版本)
使用PyCharm IDE.
生成的安装让我得到了文件C:\ Python27\Lib\site-packages\cv2.pyd
我试图找到开始使用的文档,但我很困惑,并且不知道从哪里开始,所有的例子都令人困惑 - 即:
我的问题:
谢谢
我试图在Windows Phone 8中以特定分辨率捕获MP4视频(具体而言,480x480).我知道我不能使用预设之外的尺寸,480x480不是预设.如何转换捕获的视频(例如640x480)并裁剪顶部和底部以使其成为480x480?欢迎使用任何免费或开源库(在Windows Phone上运行).请不要回答"使用外部服务器"等问题,我需要一个设备上的解决方案.
import cv2
import numpy as np
cap = cv2.VideoCapture('traffic.avi')
retval, frame = cap.read()
print retval
================ RESTART: J:\Python For DIP\traffic_video.py ================
False
>>>
Run Code Online (Sandbox Code Playgroud)
retval的值始终为False,这意味着该命令不会读取视频.读取帧必须为True.我不知道该怎么办.但是,当我使用我的默认网络摄像头时,它变为True.我尝试了很多视频,出现了同样的问题.注意:我已正确安装了ffmpeg.
注意:这不是完整代码,在此步骤中我只验证cap.read()True或False
我知道这是一个非常开放的问题.我已经对FFmpeg进行了一些初步阅读,但现在需要一些指导.
input.mov.overlay.wov.output.mov).谢谢 - C.
ffmpeg -i input.mov -i overlay.mov -filter_complex "[0:0][1:0]overlay[out]" -shortest -map [out] -map 0:1 -pix_fmt yuv420p -c:a copy -c:v libx264 -crf 18 output.mov
Run Code Online (Sandbox Code Playgroud)
然而,这几乎可行:
input.mov&overlay.mov)长度相同,叠加也会缩短.0:00.我有一个可用的 python 脚本,它使用 opencv 的视频编写器。
来源https://gist.github.com/stanchiang/b4e4890160a054a9c1d65f9152172600
如果我接收一个文件,无论我只是将视频帧传递给编写器(有效地复制文件)还是尝试编辑该帧,文件总是更大。我希望它不大于原来的(因为如果你读我的脚本,我会模糊很多东西)。
检查他们的元数据后,ffprobe -v quiet -print_format json -show_format -show_streams inputFile.mp4我注意到新文件的比特率比以前高 5.5 倍以上。
来源https://www.diffchecker.com/8r2syeln
由于比特率是文件大小的一个重要决定因素,我想知道是否
我想根据视频中不断增加的大小来检测障碍物。为此,我首先在灰度图像上应用 SIFT 以获得当前帧的特征点。接下来将当前帧的特征点与前一帧的特征点进行比较,我想应用蛮力算法。为此,我想在前一帧中获取特征点。如何在 opencv python 中访问前一帧?以及当当前帧是视频的第一帧时如何避免访问前一帧?
下面是用python编写的用于获取当前帧特征点的代码。
import cv2
import numpy as np
cap = cv2.VideoCapture('video3.mov')
while(cap.isOpened()):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
#detect key feature points
sift = cv2.xfeatures2d.SIFT_create()
kp, des = sift.detectAndCompute(gray, None)
#draw key points detected
img=cv2.drawKeypoints(gray,kp,gray,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow("grayframe",img)
if cv2.waitKey(100) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud) video-processing ×10
opencv ×4
python ×3
video ×3
android ×1
audio ×1
avfoundation ×1
c# ×1
ffmpeg ×1
iphone ×1
php ×1
processing ×1
python-2.7 ×1
strip ×1