function boton_Callback(hObject, eventdata, handles)
[handles.filename, handles.pathname] = uigetfile({'*.mp4'},'Seleccione Video');
a= fullfile(handles.pathname,handles.filename);
[~,~,fileExt] = fileparts(a);
%La funcion fileparts retorna parametros de la configuracion del video, en este caso nos interesa que se extension sea mp4
if fileExt == '.mp4'
Reproducir = handles.activex1;
Reproducir.URL = fullfile(handles.pathname,handles.filename);
Video=VideoReader(Reproducir.URL);
CantFrames= Video.NumberOfFrames;
%Obtiene los frames totales del video
FrameAle=randi([1,CantFrames])
%Selecciona un frame aleatorio entre 1 y la cantidad de frame
FrameSelec = read(Video, FrameAle);
%Obtiene la imagen correspondiente al frame seleccionado anteriormente
axes(handles.axes1)
%Selecciona el axes1 donde se mostrara el frame (en la version final de eliminara este paso)
imshow(FrameSelec);
%muestra el frame seleccionado en el axes1
fullname = 'RutaGuardado';
%Establece la ruta en la cual se van a guardar y organizar los frames del video
mkdir(fullname)
BarraProgreso2 = waitbar(0,'Procesando....');
%inicia la barra de progreso
for img = 1:CantFrames;
%Ciclo para obtener los frames posteriores al frame en el cual se va a guardar la informacion en texto
filename=strcat(num2str(img),'.bmp');
%Almacena frame a frame en la variable filename y la cual le da el nombre de frame#.jpg
FramePost = read(Video, img);
%Obtiene la imagen correspondiente del frame seleccionado
VectorPost=[filename];
waitbar(img/(CantFrames),BarraProgreso2);
%Muestra el avance en la barra de progreso
RutaGuardadoFrame=('D:\PRY-GRD\ExtractFrame\Frames');
%Selecciona la ubicacion donde se guardaran los frame
filename=fullfile(RutaGuardadoFrame,filename);
%Se almacena el nombre del frame y la ruta en la que se quiere guardar
imwrite(FramePost,filename);
%Se escribe en disco duro el frame en la ruta seleccionada.
end
close(BarraProgreso2) %cierra la barra de progreso cuando halla terminado
end