我想找到一种消除视频重复帧的方法。如果我考虑一个将重复显示同一帧5秒的视频,我想在视频中仅包含一帧,并使其可见5秒。在这里,我期待通过消除重复帧来最小化文件大小。有没有一种方法使用Matlab来做到这一点?通过消除重复帧来编码视频 - Matlab
回答
如果您的电影只是一系列剧照,您希望以固定的5秒延迟显示为幻灯片演示/演示文稿,那么您应该可以使用类的'FrameRate'
属性。尝试这样的事情例如:
writerObj = VideoWriter('peaks.mp4','MPEG-4');
writerObj.FrameRate = 0.2; % One frame every 5 seconds
open(writerObj);
Z = peaks;
surf(Z);
for k = 1:4:20
surf(sin(2*pi*k/20)*Z,Z);
writeVideo(writerObj,getframe);
end
close(writerObj);
然而,帧速率属性不能在你的电影的过程中变化的,所以你的问题的更一般的形式是从根本上对variable frame-rate encoding编码器支持的问题。大多数现代编码器(例如,H.264实现)不是被设计为明确地处理这种情况,而是具有能够检测何时内容没有改变并且有效地对数据进行编码(尤其是如果使用多遍编码的情况下)的启发法。不幸的是,Matlab(我假设你一直在使用VideoWriter
类)在这方面并不真正提供很高的保真度。我甚至不确定使用H.264视频为MPEG-4使用什么帧间编码设置。
如果VideoWriter
产生的MPEG-4 with H.264 videos是不可接受的,我建议你在尽可能高的质量(或无损),然后导出您的视频学会用全面的编码框架/库(ffmpeg,libav,x264)或应用程序编码到您想要的质量和大小。显然Handbrake支持variable frame-rate encoding,虽然它不一定是为你可能想要的而设计的,我还没有测试过它。或导出您的个人静帧并使用实际的视频编辑软件(例如OS X上的iMovie)。也有可能是专门的应用程序,可以从幻灯片/演示文稿创建一个电影(PowerPoint和Keynote都可以做到这一点)。在另一个替代方案中,使用一种可明确支持可变帧速率的编解码器 - QuickTime的image-based codecs:Photo JPEG(不要与Motion-JPEG混淆),Photo PNG(又名Apple PNG)和Photo TIFF又名苹果Tiff)。您可以使用这些编解码器直接对我的QTWriter
编码内容,即available on Github。但请注意,在OS X 10.9+上,QuickTime Player会将无损可变帧频照片PNG和照片TIFF电影转换为有损帧率固定的H.264(不转换照片JPEG电影)。有关更多详细信息和解决方法,请参阅。
- 1. 用matlab提取视频帧
- 2. 编辑视频帧
- 3. oracle sql查询通过消除重复项来返回行
- 4. 通过套接字发送视频帧
- 5. 将FFMPEG视频并排,通过帧数
- 6. 消除通知重复
- 7. 如何通过某些特殊标签区分H264编码的视频帧?
- 8. FFmpeg转换两个视频动态帧速率 - 重复/丢帧
- 9. MATLAB从视频返回图像帧
- 10. 来自matrix matlab的视频
- 11. 安卓:通过帧onSeekbar寻求视频帧改变
- 12. 通过帧处理的Android视频帧的同时录制
- 13. DXGI桌面复制:通过网络发送帧的编码
- 14. 如何解码从yuv444p帧编码的h264视频?
- 15. 蟒蛇/视频 - 无需重新编码
- 16. 消除C++代码中的重复?
- 17. 更改sql代码以消除重复
- 18. 如何消除重复的代码?
- 19. 消除重复的代码Swift 3
- 20. 如何消除重复的代码
- 21. 有没有办法来消除这种代码重复
- 22. 视频保存到iPhone视频文件夹通过编程?
- 23. 如何通过只更改分辨率来转码视频流?
- 24. 如何编写此代码以消除重复?
- 25. 根据一些编码查询消除重复记录
- 26. C++编译器能够自动消除重复的代码吗?
- 27. 丢帧视频
- 28. 通过YouTube数据API确定视频编解码器?
- 29. 通过UDP对h.264编码视频进行流式处理
- 30. 在本地或通过第三方编码视频?
看看互相关或总和平方强度差异作为一种手段来比较它们也许。 – 2014-10-19 14:14:57
一个棘手的部分将是当你将播放该文件。您不能使用任何以恒定fps速率播放的随机播放器。你将需要附加一个'多长时间来显示这个帧'元数据到每个帧和一个可以处理它的播放器。 – Hoki 2014-10-19 14:36:07
您是在Matlab中创建视频还是已经存在?这只是简单地检测哪些帧重复或不编码这些帧开始的问题?请编辑你的问题来澄清。 – horchler 2014-10-19 19:26:10