在我的程序中,它获取MP4视频,我希望它输出MP3(没有任何服务器端的东西.)因为Android(和我的应用程序)需要在许多不同的硬件配置上运行,这意味着我可能无法使用FFMPEG .我知道这可能是非常耗电量和处理能力,特别是对于手机,但我需要为我的用户提供此选项.我找不到任何不使用FFMPEG的Java本机库.
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
我有一个小视频剪辑和一个音频文件.问题是如何编写代码将它们合并到一个文件中.我从来没有为Android的多媒体应用程序编写代码,也不知道是否可以使用android媒体框架进行合并.有没有第三方图书馆这样做?
我们可以在Java中使用合并代码并在Android中调用它吗?
请指导我完成这个.谢谢
任务:将传单图像合并到传单视频中.
案例:
情况1
案例2
FAIL =错误域= AVFoundationErrorDomain代码= -11800"操作无法完成"UserInfo = 0x17266d40 {NSLocalizedDescription =操作无法完成,NSUnderlyingError = 0x172b3920"操作无法完成.(OSStatus错误-16980.) ",NSLocalizedFailureReason =发生未知错误(-16980)}
代码:
- (void)modifyVideo:(NSURL *)src destination:(NSURL *)dest crop:(CGRect)crop
scale:(CGFloat)scale overlay:(UIImage *)image
completion:(void (^)(NSInteger, NSError *))callback {
// Get a pointer to the asset
AVURLAsset* firstAsset = [AVURLAsset URLAssetWithURL:src options:nil];
// Make an instance of avmutablecomposition so that we can edit this asset:
AVMutableComposition* mixComposition = [AVMutableComposition composition];
// Add tracks to this …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何将多个视频(AVAssets)合成为一个视频,以便每个视频都经过自己的视频合成。但是,我看不到实现这一目标的方法,想知道是否有人有任何想法。
考虑以下:
上图说明了我正在尝试做的事情。我想从四个不同的视频中获取视频轨道并将它们合并到一个视频中,以便它们以类似网格的布局播放。
现在,我可以通过执行以下操作来实现这一目标
创建单个 AVMutableComposition
向可变合成添加四个视频轨道
创建四个应用AVMutableVideoCompositionLayerInstruction适当的实例transform以缩放和平移轨道。
创建一个AVMutableVideoComposition,向其添加图层说明,然后在适当的位置设置该视频合成AVAssetExportSession
虽然这有效,但它并没有让我能够在将每个视频轨道合成到输出剪辑之前对每个视频轨道进行任何自定义效果。例如,在上图中,我想在每个轨道周围添加独特的边框颜色。使用单个视频(因此没有图层说明),然后我可以使用类似 的东西添加边框AVVideoComposition applyingCIFiltersWithHandler,效果很好。但我不能使用它,因为我需要视频合成来设置变换和缩放指令。
(applyingCIFiltersWithHandler似乎没有提供一种方法来访问构成正在渲染的帧的轨道。)
我想我想要的是能够在 a 中进行某种类型的自定义渲染AVMutableVideoCompositionLayerInstruction,但目前唯一可用的选项是转换和不透明度选项。
(请注意,任何解决方案都要求我在渲染每个视频轨道期间访问当前合成时间, 因为我想要渲染的一些“效果”是帧计数器和时间码显示。)
任何帮助、想法或提示将不胜感激。
我使用grafika项目制作视频录制应用程序。现在我想为视频添加水印。(我有视频的文件路径)。请有人帮助提供任何代码片段或建议。是的,除非没有其他解决方案,否则我不想像重型库一样使用 ffmpeg。
存在此类类似问题,但没有找到任何解决方案。这里发布了一个解决方案,但不清楚具体如何进行:https : //stackoverflow.com/a/43231245/7026525任何帮助表示赞赏。
我在SO和一些不错的博客文章上挖了很多但似乎我有独特的要求分别阅读视频和音频缓冲区,以便在录制时继续进行处理.
我的用例就像当用户启动视频录制时,我需要使用连续处理视频帧ML-Face-Detection-Kit并连续处理音频帧以确保用户说出某些内容并检测噪声级别.为此,我想我需要一个单独的缓冲区中的视频和音频,并在处理后,我将合并它并保存到MP4文件中作为录制.
我尝试过由伟大的家伙Mattia Iavarone开发的CameraView,但它只提供视频帧.
我愿意接受其他有用的建议/反馈来处理这种情况.
android video-processing audio-processing android-camera2 firebase-mlkit
我想使用 OpenCV 的estimateRigidTransform 函数,但它抛出了一个错误。
AttributeError Traceback (most recent call last) in 30 31 #Find transformation matrix ---> 32 m = cv2.estimateRigidTransform(prev_pts, curr_pts, fullAffine=False) #will only work with OpenCV-3 or less 33 34 # Extract traslation
AttributeError: 模块 'cv2.cv2' 没有属性 'estimateRigidTransform'
我的 openCV 版本是 4.0.0。
我正在尝试将视频保存在特定文件夹中。但是在运行代码后没有保存输出。有人可以帮忙吗?谢谢。
cap = cv2.VideoCapture(file_paths[0])
fgbg = cv2.bgsegm.createBackgroundSubtractorMOG()
fourcc = cv2.VideoWriter_fourcc(*'XVID')
name = "C:\jupyter_projects\Test Folder\Intention dataset\background_subtracted\out.mp4"
out = cv2.VideoWriter(name,fourcc, 20,(320,180),False)
while(1):
ret, frame = cap.read()
if (ret == True):
resized_frame = cv2.resize(frame,(320,180),fx=0,fy=0, interpolation = cv2.INTER_CUBIC)
fgmask = fgbg.apply(resized_frame)
cv2.imshow('Frame',fgmask)
out.write(fgmask)
if cv2.waitKey(30) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
cv2.waitKey(5)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
PS:当我使用默认目录保存视频时,输出将被保存。
out = cv2.VideoWriter("out.mp4",fourcc, 20,(320,180),False)
Run Code Online (Sandbox Code Playgroud) 我正在创建一个自定义视频播放器,我想在用户将鼠标悬停在进度栏上时添加视频预览。
我可以使用 FFmpeg 生成缩略图,如下所示。
ffmpeg -i input -filter_complex \
"select='not(mod(n,60))',scale=240:-1,tile=layout=4x8" \
-vframes 1 -q:v 2 outputfile.jpg
Run Code Online (Sandbox Code Playgroud)
问题
要使用上面创建的精灵图像(组合缩略图),我需要生成一个WEBVTT包含缩略图和帧时间间隔的图像,如下所示。
WEBVTT
00:00:00.000 --> 00:00:03.000
thumbnails.jpg#xywh=0,0,120,68
00:00:03.000 --> 00:00:06.000
thumbnails.jpg#xywh=120,0,120,68
00:00:06.000 --> 00:00:09.000
thumbnails.jpg#xywh=240,0,120,68
Run Code Online (Sandbox Code Playgroud)
我无法找到任何有关如何使用 node-js 和 FFmpeg 创建此类 WEBVTT 文件的 FFmpeg 命令或教程。
也许这里有人知道这个问题的解决方案?任何帮助将不胜感激。
video-processing ×10
android ×4
video ×4
opencv ×3
ios ×2
objective-c ×2
python ×2
audio ×1
avfoundation ×1
ffmpeg ×1
html5-video ×1
iphone ×1
javascript ×1
macos ×1
node.js ×1
numpy ×1
python-2.7 ×1
python-3.x ×1
strip ×1