我试图通过将我添加到MatLab的视频设置为从特定起点开始播放,而不是从头开始播放,来自定义添加到MatLab的视频的播放。

通过使用MathWorks的VideoReader,我可以确定目标起始帧,持续时间,帧频等。

如何告诉MatLab从3秒或5秒的标记开始播放视频? 还是我选择的其他标记?

#1楼 票数:1 已采纳

您可以使用VideoReader做一件事,您将获得包含帧和音频的整个视频。 现在,您像这样以LET ASSUME分割10秒的视频包含200帧,开始时间为2秒,结束时间为4秒。 因此2秒视频= 40帧,4秒视频= 80。 现在将第40帧到第80帧放置一个循环,然后将其存储在temp变量中。 然后使用电影播放这些帧。 我认为以下代码将为您使用。

sampling_factor = 8;
resizing_params = [100 120];

%%// Input video
xyloObj = VideoReader('xylophone.mpg');

%%// Setup other parameters
nFrames = floor(xyloObj.NumberOfFrame/sampling_factor); %%// xyloObj.NumberOfFrames;
vidHeight = resizing_params(1); %// xyloObj.Height;
vidWidth = resizing_params(1); %// xyloObj.Width;
% here i am play 4 sec movie to 2 to 3
info = get(xyloObj);
duration =info.Duration;
startframe =round( nFrames *2/duration); % 2 means starting duration in sec  
endframe = round( nFrames *4/duration); % 4 means ending duration in sec  
%// Preallocate movie structure.
temp(1:nFrames) = struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),'colormap',[]);
mov = temp(1:endframe-startframe) ;
indx =1;
%// Read one frame at a time.
for k = 1 :nFrames
    if k >=startframe && k <=endframe  
        IMG = read(xyloObj, (k-1)*sampling_factor+1);
    %// IMG = some_operation(IMG);
         mov(indx).cdata = imresize(IMG,[vidHeight vidWidth]);
         indx =indx +1;
    end    
end

%// Size a figure based on the video's width and height.
hf = figure;
set(hf, 'position', [150 150 vidWidth vidHeight])

%// Play back the movie once at the video's frame rate.
movie(hf, mov, 1, xyloObj.FrameRate);

#2楼 票数:0

如果您运行的是14b或更高版本,VideoReader可以设置一个名为CurrentTime的属性。

所以你可以说

vidObj = VideoReader('xylophone.mpg');
vidObj.CurrentTime = 2; % 2 seconds;
readFrame(vidObj);

希望这可以帮助。

  ask by excelhelp translate from so

未解决问题?本站智能推荐:

1回复

如何使用MATLAB从不同帧频的视频中获取时间信息?

我有一个视频,其中帧速率在视频的长度上不是恒定的。 如何使用MATLAB从视频中获取实际时间信息?
1回复

压缩网站的视频文件?

如何将mp4视频文件压缩为很小的尺寸,并且仍然保持良好的质量。 我需要视频在网站背景上循环播放。 例如,这个只有2.1 MB: http : //2.s3.envato.com/h264-video-previews/2021746.mp4
1回复

裁剪具有已定义宽度,长度和像素位置的视频文件

我试图创建一个程序来检测视频中的脸部。 在接受“面子”之前,必须通过一些要求。 在满足所有要求之后,我想采用保持“面部”的框架并裁剪它们以使面部成为焦点区域。 程序将遍历每一帧并执行此操作,然后拍摄新视频并将其制作成视频文件。 我从未使用过视频文件或图像文件,所以这对我来说都是新手。
1回复

有没有可以播放视频byteArray流的flex视频播放器?

是否有任何可播放视频byteArray流的flex视频播放器? 我想在视频播放器中播放视频文件byteArray。 任何网站链接或商业组件链接或文章,将不胜感激。
4回复

如何使用一些播放器来缓冲视频来创建一个简单的网站

我知道Apache,HTML5视频,但是对视频流/缓冲/编码领域的了解很少。 我想创建一个应用程序,该应用程序将流存储一些视频文件,并且客户端应有缓冲。 我不确定如何实现。 是否需要在Web服务器端和/或客户端进行一些特殊处理? 我真的希望您详细说明您的答案。 编辑1
1回复

如何获得以不同帧频录制的视频的实际时间信息?

如何获得以不同帧频录制的视频的实际时间信息? 该文件为.avi格式。 当我尝试获取初始帧速率并使用它来获取时间时,我得到了错误的时间信息。 帧速率是否因视频压缩方法而变化? 如果是这样,如何从视频中删除变体。
3回复

如何将图像,文本或视频添加到视频中

我有静态图像,文本和一些视频素材。 如何将这些添加到视频模板中? 是否有一些编解码器通过命令行执行此操作? 我想在服务器上在线实现吗? 类似于www.animoto.com的东西 谢谢。
1回复

如何根据Python中的条件裁剪实时视频?

试想一下,您从两个不同的系统获得两个输入。 系统“A”提供唯一ID,系统“B”为您提供直播视频。 我必须根据系统“A”中唯一 ID 的变化裁剪视频并将其保存为 uniqueId.mp4 的名称 举个例子,我从系统 A 获得 10 分钟的唯一 ID 为 6789,唯一 ID 突然更改为 6790,我们