Estoy atascado y realmente no sé cómo explicarlo de manera correcta. Así lo puse en los detalles del profano.
Tengo dos videos mp4 de 30 segundos de duración guardados en el almacenamiento en la nube.
Ambos tienen el mismo contenido de video.
mi problema es
Si abro video2
en el navegador Safari, no puedo ubicar la hora exacta (por segundo) en la barra de progreso del reproductor de video.
Lo que quiero decir es que, por ejemplo, tomo medidas:
el reproductor de video saltará a 0 y reproducirá, en lugar de reproducir desde 1 segundo.
Hay varios intervalos de tiempo video2
que tienen este problema.
Sin embargo, video1
no tiene este problema.
información de video1 de ffmpeg
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'origin.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.4.101
Duration: 00:00:33.78, start: 0.000000, bitrate: 584 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 545 kb/s, 23.98 fps, 23.98 tbr, 11988 tbn, 47.95 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 32 kb/s (default)
Metadata:
handler_name : SoundHandler
información de video2 de ffmpeg
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'my.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.71.100
Duration: 00:00:35.04, start: 0.000000, bitrate: 734 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 90:67 DAR 160:67], 599 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 129 kb/s (default)
Metadata:
handler_name : SoundHandler
video1
tiene un intervalo de fotogramas clave muy corto: tiene un fotograma clave cada pocos fotogramas. video2
no. Algunos jugadores tienen la capacidad de decodificar hasta que no sea KF en silencio y comenzar a jugar desde el punto de búsqueda. Si el suyo no lo hace, comenzará desde el fotograma clave más cercano que precede al punto de búsqueda.
ffprobe origin.mp4 -show_entries frame=key_frame,pkt_pts_time -select_streams v -of compact=p=0 | grep ame=1
Resultado:
key_frame=1|pkt_pts_time=0.000000
key_frame=1|pkt_pts_time=0.333667
key_frame=1|pkt_pts_time=0.667334
key_frame=1|pkt_pts_time=1.001001
key_frame=1|pkt_pts_time=1.334668
key_frame=1|pkt_pts_time=1.668335
key_frame=1|pkt_pts_time=2.002002
...
key_frame=1|pkt_pts_time=32.699366
key_frame=1|pkt_pts_time=33.033033
key_frame=1|pkt_pts_time=33.366700
key_frame=1|pkt_pts_time=33.700367
Vídeo2:
ffprobe my.mp4 -show_entries frame=key_frame,pkt_pts_time -select_streams v -of compact=p=0 | grep ame=1
Resultado:
key_frame=1|pkt_pts_time=0.000000
key_frame=1|pkt_pts_time=2.293958
key_frame=1|pkt_pts_time=5.171833
key_frame=1|pkt_pts_time=7.257250
key_frame=1|pkt_pts_time=9.718042
key_frame=1|pkt_pts_time=13.221542
key_frame=1|pkt_pts_time=15.473792
key_frame=1|pkt_pts_time=21.271250
key_frame=1|pkt_pts_time=24.357667
key_frame=1|pkt_pts_time=29.195833
key_frame=1|pkt_pts_time=32.407375
Agregar -g 8
al comando de transcodificación ffmpeg para colocar un fotograma clave cada 8 fotogramas.
xi xiao
gian
xi xiao
jiamo