我想访问 h264 视频流的运动向量而不解码视频。我知道这显示了视频和运动矢量:
ffplay -i myvideo.avi -flags2 +export_mvs -vf codecview=mv=pf+bf+bb
如何避免解码整个视频以节省 CPU?我想要这样做的原因是我需要在 Python 中解析这些数据。
编辑
我尝试使用ffprobe
with
ffprobe -i my_video.mp4 -flags2 +export_mvs -print_format json -show_frames
它打印了很多信息:
{
"media_type": "video",
"stream_index": 0,
"key_frame": 0,
"pkt_pts": 2513990,
"pkt_pts_time": "27.933222",
"pkt_dts": 2510990,
"pkt_dts_time": "27.899889",
"best_effort_timestamp": 2513990,
"best_effort_timestamp_time": "27.933222",
"pkt_duration": 3000,
"pkt_duration_time": "0.033333",
"pkt_pos": "1157994",
"pkt_size": "262",
"width": 1280,
"height": 720,
"pix_fmt": "yuvj420p",
"sample_aspect_ratio": "1:1",
"pict_type": "P",
"coded_picture_number": 559,
"display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0,
"color_range": "pc",
"color_space": "bt709",
"color_primaries": "bt709",
"color_transfer": "bt709",
"chroma_location": "left",
"side_data_list": [
{
"side_data_type": "Motion vectors"
}
]
},
尽你所能,Motion vectors
中提到了side_data_type
。我怎样才能打印它们?
我尝试过
ffprobe -i my_video.mp4 -flags2 +export_mvs -print_format json -show_frames -show_entries side_data="Motion vectors"
但似乎没有添加任何信息。我可以改变"Motion vectors"
没有错误的任何其他值,所以我猜这不是指向正确的数据。