2017-09-27 5 views
0

Je suis en train de changer l'intervalle des images clés d'une vidéo à 1 suivant this link et en utilisant la commandene peut pas changer intervalle vidéo d'images clés à 1 en utilisant ffmpeg

ffmpeg -i myvideo.mp4 -vcodec libx264 -x264-params keyint=30:no-scenecut -acodec copy out.mp4 

comme indiqué dans la première réponse. J'ai écrit keyint=30 comme fps de ma vidéo est 30, ainsi 1*30=30. Cependant, seule la image clé de la première image est 1, et tout le reste restent 0 (comme avant la commande ci-dessus), comme le montre la commande ffprobe -select_streams v:0 -show_frames out.mp4:

... 
[FRAME] 
media_type=video 
stream_index=0 
key_frame=1 
pkt_pts=0 
pkt_pts_time=0.000000 
pkt_dts=0 
pkt_dts_time=0.000000 
best_effort_timestamp=0 
best_effort_timestamp_time=0.000000 
pkt_duration=512 
pkt_duration_time=0.033333 
pkt_pos=48 
pkt_size=18693 
width=560 
height=320 
pix_fmt=yuv420p 
sample_aspect_ratio=N/A 
pict_type=I 
coded_picture_number=0 
display_picture_number=0 
interlaced_frame=0 
top_field_first=0 
repeat_pict=0 
[/FRAME] 
[FRAME] 
media_type=video 
stream_index=0 
key_frame=0 
pkt_pts=512 
pkt_pts_time=0.033333 
pkt_dts=512 
pkt_dts_time=0.033333 
best_effort_timestamp=512 
best_effort_timestamp_time=0.033333 
pkt_duration=512 
pkt_duration_time=0.033333 
pkt_pos=21764 
pkt_size=199 
width=560 
height=320 
pix_fmt=yuv420p 
sample_aspect_ratio=N/A 
pict_type=B 
coded_picture_number=3 
display_picture_number=0 
interlaced_frame=0 
top_field_first=0 
repeat_pict=0 
[/FRAME] 
... 

Toutes les idées?

+0

Votre commande est correcte: il sort un I-image par seconde ou 30 images. Si vous voulez une sortie I-frame seulement, vous devez régler 'keyint' sur 1 et non sur 30. – aergistal

+0

@aergistal Merci pour votre réponse. Je l'ai essayé, mais encore une fois seulement la première image a 'keyframe = 1' ... – Marievi

Répondre

0

Enfin, j'obtenu ce que je voulais avec la commande:

ffmpeg -i myvideo.mp4 -qscale 0 -g 1 outputFile.mp4