我正在寻找免费的C#(.net)库,它允许我录制计算机屏幕的视频(加上声音)(基本上,可以做camtasia的工作).
周围有什么好用的吗?
谢谢
我需要知道如何录制运行促销用途的iOS应用的视频.有人可以帮我这个吗?
我有构建iOS应用程序的经验,但没有视频经验.我想构建一个将实时视频流式传输到服务器的iPhone应用程序.一旦进入服务器,我将实时向消费者提供该视频.
我读了很多材料.有人可以告诉我,如果以下是正确的,并为我填写空白.
我一直在努力寻找更好的解决方案来暂停和恢复视频录制.据我所知,Media Recorder类不允许在Android 4.3或更低版本的录制期间暂停.
我发现mp4parser库可以将多个视频文件合并为一个视频文件.我正在使用以下罐子:
aspectjrt-1.7.3.jar
isoparser-1.0.6.jar
问题是将它们合并在一起需要太长时间.例如,总共约5分钟的2-3个视频文件需要至少2分钟才能合并它们!
我的Galaxy S3和Note 2附带的默认Camera应用程序,在视频录制中有暂停选项.他们暂停的视频只需不到1秒即可完成合并.
有人可以告诉我这里我做错了什么吗?
我使用下面的代码合并视频文件:
for (ArrayList<String> PathList : VideoList) {
VideoPathList = PathList;
}
for (String mMovie : VideoPathList) {
Movie movie = MovieCreator.build(mMovie);
MovieList.add(movie);
}
List<Track> videoTracks = new LinkedList<Track>();
List<Track> audioTracks = new LinkedList<Track>();
for (Movie mMovie : MovieList) {
for (Track t : mMovie.getTracks()) {
if (t.getHandler().equals("soun")) {
audioTracks.add(t);
}
if (t.getHandler().equals("vide")) {
videoTracks.add(t);
}
}
}
Movie result = new Movie();
if(audioTracks.size() > 0) {
result.addTrack(new AppendTrack(audioTracks.toArray(new Track[audioTracks.size()]))); …Run Code Online (Sandbox Code Playgroud) 在录制视频时是否有任何方法可以添加叠加,这样当我从相机胶卷播放视频时,我可以看到叠加.
我想在观看youtube视频时记录用户的反应,因此屏幕上会有两个视频同时被录制.一个是摄像机视频(反应视频),其他一个是YouTube视频(反应).
below should be recorded as one video
__________________________
| |
| Camera Video |
| |
| __________|
| | Youtube |
| | Video |
---------------------------
Run Code Online (Sandbox Code Playgroud)
一些类似的问题与我的问题无关,但回答了我的问题中提到的一些要点.Q1,Q2,Q3
请建议一些方法来解决这个问题,我该如何实现它.
在我的应用程序中,我正在 AVView 中播放视频,现在我正在该视图中按视图进行一些转换,现在我想将该视图录制为视频,我也需要音频,那么我该怎么做?
我尝试过这个库,但它多次卡住视频
https://github.com/wess/Glimpse
我做了足够的研发,但我没有得到任何可能的解决方案。
这是我的代码:
{
guard let path = Bundle.main.path(forResource: "video2", ofType: "mov") else {
return
}
let videoURL = NSURL(fileURLWithPath: path)
// Create an AVPlayer, passing it the local video url path
let player = AVPlayer(url: videoURL as URL)
let controller = AVPlayerViewController()
controller.player = player
present(controller, animated: true) {
player.play()
self.createImageView()
controller.view.addSubview(self.viewForImage)
self.zoomAnimationCount = 0
self.zoomInAnimation()
DispatchQueue.main.async {
self.glimpse!.startRecording(controller.view, onCompletion: { fileOuputURL in
print("DONE WITH OUTPUT: \(fileOuputURL?.absoluteString ?? "")")
})
DispatchQueue.main.asyncAfter(deadline: .now() + 20.0, execute: …Run Code Online (Sandbox Code Playgroud) 我想在视频录制打开时每 5 秒保存一次视频。
我尝试了很多解决方案,但遇到了一个小故障,即最后保存的帧在预览中保留了大约 300 毫秒。
我认为原因在于 MediaRecorder 类中“一旦记录器停止,就需要在重新启动之前完全重新配置和准备。”
谢谢
我需要在 MacOS 中保护我的应用程序中的内容。我希望这种保护包括截屏和录制视频。我已经阅读了这里的几份报告和Apple支持,但实际上我只能通过在我的应用程序的每个NSWindows中将CGWindowSharingType功能设置为无(kCGWindowSharingNone )来避免屏幕截图(使用[NSWindow setSharingType:]函数)。
我也读过这些报告(我可以阻止用户在Mac应用程序中截取屏幕截图吗?和https://github.com/heardrwt/RHAdditions/blob/master/RHAdditions/NSWindow%2BRHPreventCaptureAdditions.m)并且我已经测试了它们。我遇到了两个麻烦:首先,我只能避免从应用程序的主窗口进行录制,而不是所有窗口(我不知道为什么..)。最后,这个方法不使用“官方 API”,那么我不能相信这个功能可以在没有任何通知的情况下进行更改,甚至它可以取决于我的应用程序将运行的 MacOS 版本。
对于我来说,检测我的应用程序(或屏幕)是否正在被录制以冻结内容就足够了,尽管如果有人告诉我是否有任何公共官方 API 可以执行此操作,那就太好了。我读过您可以在 iOS 中附加到通知事件(如何在 iOS 应用程序中禁用屏幕录制),但我无法在 MacOS 中找到类似的功能。
谁能告诉我这是否可行,或者苹果是否专门允许此功能?
非常感谢
最近我遇到了 mp4 文件保留的性能问题。我有一个录音机,可以从多个 RTSP 流中保存 1 分钟长的 mp4 文件。这些文件存储在文件树中的外部驱动器上,如下所示:
./recordings/{camera_name}/{YYYY-MM-DD}/{HH-MM}.mp4
Run Code Online (Sandbox Code Playgroud)
除了视频文件之外,该驱动器上还有许多其他文件不予考虑(除非它们具有 mp4 扩展名),因为它们占用的空间要少得多。
文件保留的假设如下。每分钟,负责记录的 python 脚本都会检查外部驱动器的履行级别。如果级别高于 80%,它将扫描整个驱动器,并查找 .mp4 文件。扫描完成后,它会按创建日期对文件列表进行排序,并删除与摄像机编号相同的最旧文件的数量。
负责文件保留的代码部分如下所示。
./recordings/{camera_name}/{YYYY-MM-DD}/{HH-MM}.mp4
Run Code Online (Sandbox Code Playgroud)
(/home是外部驱动器安装点)
问题是,当我使用 256 或 512 GB SSD 时,这种机制曾经发挥过作用。现在我需要更大的空间(更多的摄像头和更长的存储时间),并且需要花费大量时间在更大的 SSD 上创建文件列表(从现在的 2 到 5 TB,将来可能是 8 TB)。扫描过程花费的时间远远超过 1 分钟,可以通过减少执行次数并延长“要删除”文件列表的长度来解决这个问题。真正的问题是,该进程本身使用了大量的 CPU 负载(通过 I/O 操作)。整个系统的性能下降是显而易见的。其他应用程序,例如一些简单的计算机视觉算法,运行速度较慢,CPU 负载甚至会导致内核恐慌。
我使用的硬件是 Nvidia Jetson Nano 和 Xavier NX。正如我上面所描述的,这两种设备都存在性能问题。
问题是您是否知道一些适用于我描述的情况的文件保留算法或开箱即用软件。或者也许有一种方法可以重写我的代码,使其更加可靠和执行?
编辑:
我能够os.walk()通过限制检查空间来降低影响。现在我只需扫描/home/recordings以及/home/recognition/较低的目录树(用于递归扫描)。同时,我添加了 .jpg 文件检查,所以现在我从 .mp4 和 .jpg 中查看。这个实现的结果要好得多。
不过,我还需要进一步优化。我准备了一些测试用例,并在 1 TB 驱动器上进行了测试,该驱动器已填充 80%(主要是媒体文件)。我在下面附上了每个案例的分析器结果。
total, used, free = shutil.disk_usage("/home")
used_percent = …Run Code Online (Sandbox Code Playgroud) video-recording ×10
ios ×4
video ×4
android ×3
.net ×1
c# ×1
camera-roll ×1
iphone ×1
macos ×1
nswindow ×1
objective-c ×1
performance ×1
python ×1
recorder ×1
retention ×1
saving-data ×1
screenshot ×1
surfaceview ×1
swift ×1