This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM68A:AM68A

Guru**** 2398695 points
Other Parts Discussed in Thread: AM68A

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1490052/am68a-am68a

器件型号:AM68A

工具与软件:

您好!

我正在尝试将我的视频录制分成三个单独的文件,每个文件包含10秒的镜头,使用相机作为视频源。

根据 GStreamer 的官方文档、splitmuxsink通常与一起使用x264enc。 但是、在 TI AM68A 平台上、有三个硬件视频编码器可用、为了节省开支、我认为v4l2h264encv4l2h265enc应该是合适的。

我尝试了以下流水线:

gst-launch-1.0 v4l2src device=/dev/video2 num-buffers=100 ! \ video/x-raw, width=1280, height=720 ! videoconvert ! queue ! \ tee name=t \ t. ! queue ! v4l2h264enc extra-controls="encode,key_int_max=10" ! h264parse ! queue ! \ splitmuxsink location=video%02d.mkv max-size-time=10000000000 max-files=3 muxer-factory=matroskamux \ muxer-properties="properties,streamable=true" \ t. ! queue ! autovideosink

虽然此流水线成功记录了视频、但不会按预期持续保存。 I 初始设置num-buffers=100,这导致了一个10秒的记录。 然而,当我增加num-buffers到500,视频持续时间延长到50秒。还尝试删除数字缓冲区,然后视频正在流式传输,但创建一个文件 video00.mkv 和视频是空的0KB 文件。

我假定max-size-time应该控制每个文件的持续时间(10秒)、而max-files应该限制文件的总数。 然而、管道似乎没有按预期运作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    感谢您的提问。  它可能需要重组排队和解析步骤。 此外、num-buffer 将在一定数量的帧(大约与根据流特性指定的缓冲器数量进行1:1关系)处停止源。  

    此外、您使用的 SDK 版本是什么?

    谢谢!
    Sarabesh S.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    SDK 版本为10.0.1。 我尝试从源中删除"num-buffers"属性、该属性autovideosink工作正常。 但是、视频未被保存—文件video00.mkv被创建、但保留为空、不会再创建其他文件。
    日志显示 splitmuxsink 正在等待 GOP 的结束、 我已设置 key_int_max=5以确保频繁的关键帧并增加队列大小以防止溢出、但问题仍然存在。 我已独立测试了编码器和多路复用器、它们运行良好。
    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Nihal:  

    今天没能深入了解、下周我会为您发布最新消息。  

    谢谢!
    Sarabesh S.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然可以

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw、width=1280、height=720! 视频转换! 队列! 时间覆盖! x264enc key_int_max=10! h264parse! splitmuxsink location=video%02d.mkv max-size-time=10000000000 max-files=3 muxer-factory=matroskamux muxer-properties="properties,streamable=true"
    这个管道我尝试在我的电脑上,它使用 x264enc,完美的工作。 但是、当我使用在我的 TI 平台上尝试类似流水线时 v4l2h264enc、无法按预期工作。 这表明问题可能出在 v4l2h264enc 元素或者我是如何配置解析和多路复用元素的。 遗憾的是、TI 平台没有 x264enc 可用的元素、因此我需要进行 v4l2h264enc 设置故障排除。 您能否帮助我确定可能会出现什么问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    解决了问题:
    我 向 v4l2h264enc 添加了 h264_I_FRAME_PERIOD=10该属性已解决问题。 最终流水线为:
    gst-launch-1.0 v4l2src device=/dev/video2 !     video/x-raw、format=yuy2、width=640、height=480、帧速率=30/1!     视频转换!     时间覆盖!     TEE NAME=t t t t t ! 队列! 视频转换! autovideosink 同步=假  t ! 队列! v4l2h264enc extra-controls="编码,h264_I_FRAME_PERIOD=10, speed-preset=ultrafast"!     h264parse!     splitmuxsink location=video%02d.mkv max-size-time=10000000000 max-files=3 muxer=matroskamux