【问题标题】:pyav / ffmpeg / libav access side data without decoding the videopyav / ffmpeg / libav 访问端数据而不解码视频
【发布时间】:2021-08-21 23:14:17
【问题描述】:

现在我通过以下方式访问运动矢量:

container = av.open(
    rtsp_url, 'r',
    options={
        'rtsp_transport': 'tcp',
        'stimeout': '5000000',  
        'max_delay': '5000000', 
    }
)
stream = container.streams.video[0]
codec_context = stream.codec_context
codec_context.export_mvs = True


for packet in container.demux(video=0):
    for video_frame in packet.decode():
        motion_vectors_raw = video_frame.side_data.get('MOTION_VECTORS')

在我看来,这确实解码了 video_frame。有没有办法在不必解码整个帧的情况下获得运动矢量?我的目标是降低 CPU 使用率。

【问题讨论】:

    标签: video ffmpeg h.264 decoding pyav


    【解决方案1】:

    首先,我在这件事上只找到了这些cmets:

    no solution available - Reddit

    complicated, but not impossible - Stackoverflow

    idea to implement this in ffmpeg back in 2016 - Mailing list

    大多数(如果不是全部)工作方法都基于“ffmpeg”,这需要在辅助数据可用之前进行帧解码。

    另一种方法是在编码硬件加速时获取运动矢量,例如在树莓派上:

    Motion vectors via MMAL encoder

    谷歌搜索“h264 运动矢量压缩域” 提供了很多关于该主题的研究论文,其中提取了运动矢量以提高某些分析目标的性能,例如:

    2009, Szczerba, "Fast compressed domain motion detection in H.264 video streams for video surveillance applications"

    2009, Solana-Cipres, "Real-time moving object segmentation in H.264 compressed domain based on approximate reasoning"

    2014, Patel, "Motion Detection and Segmentation in H.264 Compressed Domain for Video Surveillance Application"

    2004, Babu, "Video Object Segmentation - A Compressed Domain Approach"

    2014, Babu, "A survey on compressed domain video analysis techniques"

    那里没有真正的解决方案或解码提示,只有概念和评估。

    因此,如果您想尝试通过自己使用 Python 解析压缩的 h264 视频来获取运动矢量,您可以从以下开始:

    H264 - Spec

    H.264 and MPEG4 Video Compression - Book

    https://github.com/beardypig/pymp4

    https://github.com/alastairmccormack/pymp4parse

    https://github.com/halochou/py-h264-decoder

    https://github.com/slhck/h26x-extractor

    https://code.google.com/archive/p/py264/

    我认为(目前)还没有现成的解决方案!

    【讨论】:

      猜你喜欢
      • 2021-08-08
      • 2014-04-23
      • 2021-08-09
      • 2017-03-09
      • 2016-11-10
      • 2015-03-04
      • 2013-12-24
      • 1970-01-01
      • 2015-05-21
      相关资源
      最近更新 更多