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.

[参考译文] Linux/TMDSEVM572X:录制时播放

Guru**** 2595805 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/642217/linux-tmdsevm572x-play-while-recording

器件型号:TMDSEVM572X

工具/软件:Linux

您好!

我在本地 HDD 中记录了一个 mp4文件。

对于视频监控应用、我会 在录制时将视频文件播放到嵌入式显示器中。

我想在文件中移动(暂停、播放、缓慢移动...)  。

请给我一个方法。 我知道这是可能的、但我找不到任何东西。

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如果我理解您的用例、您可以保存到文件中并同时显示。

    如果我错了、请更正我。

    本指南中有一个示例:

    processors.wiki.ti.com/.../Processor_Training:_Multimedia

    搜索"Capture and Encode and Display in parallel (并行捕获和编码和显示)"。

    但是、如果您的用例是 解码和显示编码文件、您可以在相同的指南示例中找到。

    [引用 user="ami">我想在文件中移动(暂停、播放、缓慢移动...)  .[/报价]

    关于暂停、缓慢运动、我建议您查看本教程(我的侧未测试此教程):

    https://gstreamer.freedesktop.org/documentation/tutorials/basic/playback-speed.html

    BR
    玛格丽塔

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

    您好、Margarita、
    我的用例很简单:
    我想录制摄像机中的视频文件、同时显示该视频文件。
    我会在录制时“重播”视频文件:它就像足球中的“重播”一样... 匹配继续进行、我们以匹配序列的缓慢/快速运动进行重放。 之后、我们切换到实时模式。

    我希望这一点很清楚。

    如何执行此操作?

    最恰当的考虑

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

    您好!

    这是我的评论 gstreamer 观点。

    [报价用户="Mami"]我想录制摄像机中的视频文件,同时显示此视频文件。

    我在我的一侧测试了几条管道。

    这样的流水线将不起作用:

    gst-launch-1.0 -e videotestsrc! 'video/x-raw、format=(string) NV12、width=1280、height=720'! ducatih264enc! h264parse! 文件链接位置=1.h264文件 rc 位置=1.h264! h264parse! 杜拉蒂哈264decvpe! 陆上接收机

    第二个解析器将失败并显示错误 No valid frames found before end of stream (未在流结束前找到有效帧)、原因可能是在打开文件时、1.h264 (已保存)视频文件不包含完整帧。

    我测试了这个单独的管道、例如:

    gst-launch-1.0 -e videotestsrc! 'video/x-raw、format=(string) NV12、width=1280、height=720'! ducatih264enc! h264parse! 真棒! 文件链接位置= rec.mov &
    gst-launch-1.0文件 rc location=rec.mov! qtdemux! h264parse! 杜拉蒂哈264decvpe! 陆上接收机

    在这种情况下、qtdemux 将失败并显示错误、该文件不包含可播放的流。 它希望编码文件中出现 EOS 的可能原因。

    这样的流水线不会完全起作用:

    gst-launch-1.0 -e videotestsrc! 'video/x-raw、format=(string) NV12、width=1280、height=720'! ducatih264enc! h264parse! 文件链接位置=rec.264 &
    gst-launch-1.0文件 rc location=rec.264 ! h264parse! 杜拉蒂哈264decvpe! 陆上接收机


    但在这种情况下、解码将在某个时间点退出、因为"filesink"(保存在文件中)比读取它慢。 如果您使用 avimux&avedumux、则情况相同。

    可能可以使用诸如 appsrc 之类的元素。 您可以在互联网上搜索更多信息、如 appsrc 和 appsink 等元素将适合您的用例。

    类似这样的管道:

    gst-launch-1.0 -e videotestsrc! '视频/x-raw、\
    format=(string) YUY2、width=(int) 800、height=(int) 480、framerate=(fraction) 30/1'! VPE num-input-buffers=8! TEE NAME=t ! \
     排队! ducatih264enc bitrate = 4000! 排队! h264parse! 救世主! 文件链接位置=x.avi t! 排队! 陆上接收机

    可用于编码和显示。 有元件输出选择器可用于在输出之间切换。 因此、当您具有"重放"时、您可以尝试切换航向接收器以打开编码文件。不幸的是、这无法通过控制台中的管道进行测试(必须在 GST 应用中实施)、因此我不确定它是否起作用。  

    下面是一些有用的链接:

    https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsrc.html

    https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html

    https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-output-selector.html

    以下是 gstreamer 教程的链接:

    gstreamer.freedesktop.org/.../

    希望这对您有所帮助。

    BR
    玛格丽塔

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

    谢谢、这个回复不能解决我的问题、我对这个用例表示支持、这并不容易。

    我发现"Mformats SDK"提供(花费大量资金) API 来解决我的用例。 (docs.medialooks.com/.../)
    它似乎使用了 ffmpeg。

    我将尝试另一种方法、使用 ffmpeg。

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

    您好!

    让我也与其他专家联系。

    BR
    玛格丽塔

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

    如果使用多路复用器、容器数据可能无法保持更新、并且您在视频文件仍在录制时打开该文件(请参阅我一侧的 qtmux 测试)。

    在我们的侧边捕获->编码->在文件中保存并同时显示已测试(请查看多媒体用户指南中包含 TEE 元素的示例)。 但在这种情况下、可以在停止编码显示后检查回放。

    您是否检查了输出选择器元件?


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

    希望答案能帮助您。
    如果是、您能否验证答案(这是"解决我的问题"按钮)。

    谢谢!
    此致、
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    感谢你的帮助。
    最恰当的考虑