我正在使用VLC.exe捕获多播视频,并使用FFmpeg.exe执行一些处理/转换。生成的视频以灰色背景开始,一些移动物体在灰色背景中移动。在我看来,视频不是在I帧上开始,而是在B帧或P帧上开始。但是,当我运行ffprobe时,它声明第一帧是关键帧。大约1/2秒后,视频播放正常。
以下是我用来捕捉视频的命令:
vlc.exe -I curses --run-time=10 "my.sdp" --sout=video.mp4
当我使用FFmpeg转换为mp4文件时,我没有使用任何特殊内容:
ffmpeg.exe -i video.mp4 -s 400x300 final.mp4
我尝试发布第一帧或第二帧的图像,但Stackoverflow给了我一个错误,说明我需要至少10个声望来发布图像。对此感到抱歉,图片会有所帮助。
我运行了命令“ffprobe show_frames”,看起来第一帧是关键帧。当然我对这一切都是新手,我不知道我在做什么或看到什么。
这是“ffprobe show_frames”命令输出的开头:
[FRAME]
media_type=video
key_frame=1
pkt_pts=0
pkt_pts_time=0.000000
pkt_dts=0
pkt_dts_time=0.000000
pkt_duration=1001
pkt_duration_time=0.033367
pkt_pos=48
pkt_size=756
width=400
height=300
pix_fmt=yuv420p
sample_aspect_ratio=1:1
pict_type=I
coded_picture_number=0
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
reference=3
[/FRAME]
有没有办法告诉VLC.exe开始在I-Frame上捕获(这将是我指定捕获视频的持续时间的最佳解决方案)或者是否有办法告诉FFmpeg.exe启动从遇到的第一个I-Frame开始转换输入视频?
谢谢, -David