Usando un envoltorio para VLC llamado Vlc.DotNet, pude escribir mi propio reproductor de vídeo con los botones y controles mostrados exactamente como me gusta.
Llama a la función de avanzar un fotograma, pero escribí mi propio método en mi programa para retroceder en la posición en el vídeo aproximadamente un fotograma basado en el número de fotogramas por segundo del medio que se está reproduciendo.
No funciona todo el tiempo. A veces, cuando haces clic en el botón de retroceso de fotograma, no sucede nada en el vídeo. Supongo que tiene que ver con el comentario de Mokubai de arriba. PERO, funciona la mayoría de las veces, si estás tratando de llegar a un fotograma en particular.
Si me permites presumir un poco, tengo botones para saltar hacia adelante y hacia atrás un número configurable de segundos. Tengo controles de velocidad de reproducción mejorados que te permiten disminuir o duplicar tu velocidad, así como controles más finos que pueden cambiar la velocidad en pequeñas cantidades y una caja numérica para ingresar la velocidad que desees. Además, tengo un control deslizante de tiempo mejorado que te permite enviar secuencias de teclado para saltar a cualquier punto en el vídeo por porcentaje pulsando 1-9 (10%-90%). ¡Simplemente me gusta hacerlo como me gusta!
3 votos
El video moderno se basa en fotogramas clave y deltas de esos fotogramas clave avanzando en el tiempo. La codificación también puede utilizar datos de fotogramas en el "futuro" para construir el fotograma que se reproducirá en ese momento inmediato. Avanzar un fotograma depende de los datos del fotograma anterior, así como de algunos datos adicionales, pero retroceder un fotograma es más difícil, ya que tienes que reconstruir todo desde el fotograma clave anterior para cada paso atrás. No puedes usar los datos del fotograma "actual" para un fotograma anterior sin mucho más trabajo. No me sorprende que esto aún no se haya implementado.
4 votos
Mokubai, simplemente podrías limitarlo a N fotogramas hacia atrás y almacenarlos en caché mientras construyes los fotogramas a medida que avanzas. dios mío
3 votos
@Mokubai Esa podría haber sido una excusa válida hace una década, pero mi 3800X de más de 2 años puede decodificar video 1080p a 1266 fps o 232fps de un solo hilo. Con un intervalo de fotograma clave típico de 15, eso es <65ms por búsqueda desde el último fotograma clave en 1 núcleo. (Sí, sé que la latencia no es igual al rendimiento; Agregue la longitud de la tubería al intervalo de fotograma clave y aún obtendrá un retraso muy razonable)
5 votos
Con suerte algún día se implementará. Incluso el reproductor web de YouTube lo admite.
0 votos
@Mokubai si todo el software de edición de video puede hacerlo, ¿por qué VLC no puede hacerlo?
2 votos
@JaydenLawson porque el software de edición de video es una bestia completamente diferente al software de reproducción de video. Uno decidió abordar un problema difícil porque es una parte necesaria del flujo de trabajo. Por lo general, el software de edición decodificará por completo el video comprimido en cuadros sin procesar que pueden retroceder y avanzar fácilmente, mientras que los reproductores pasarían video comprimido a sus bibliotecas de reproducción que tienen interfaces mucho más simples. Si VLC solo hiciera decodificación de software y tuviera control de todos los búferes de decodificación y reproducción, podría ser fácil, pero VLC utiliza muchas bibliotecas externas para la reproducción.
0 votos
Es una lástima. Quicktime Player ha tenido esta característica durante décadas, sin embargo VLC nunca lo ha logrado.