【问题标题】:Take input from a live source instead of from a file in live555从实时源而不是从 live555 中的文件获取输入
【发布时间】:2014-03-27 07:07:43
【问题描述】:

我刚刚开始使用 live555 库。使用实时库的实例不多。我从相机获取图像数据并转换为 h264 格式。现在,数据存储在程序的缓冲区中。所以我需要流式传输实时视频并通过带有 RTSP 服务的 RTP 传输。但是测试程序中最“test*Streamer”从文件中读取数据,我该如何修改它以便从实时源而不是文件中获取输入?我应该使用哪些数据结构或对象?如果有人可以帮助我提供某种指导/教程或至少一些示例,那将是很大的帮助。

【问题讨论】:

    标签: live-streaming live555


    【解决方案1】:

    这是一个很好的例子,说明了你在这里追求什么:

    https://www.imc-store.com.au/Articles.asp?ID=278

    这是一个 c++ VS2010 项目,展示了如何使用 FFMPEG 编码原始 RGB 帧,然后将该离散帧发送到 Live555 以进行流式传输。

    VS2010项目包含了所有的库和包含文件,所以应该只是解压的情况,在VS2010中运行.sln文件,编译运行!

    VLC 源代码同时实现了 FFMPEG 和 Live555,你可以看看他们的代码以获得一些额外的指针!

    祝你好运!

    【讨论】:

    • 也来自堆栈溢出的常见问题解答“鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用最相关的部分重要链接,以防目标站点无法访问或永久离线。”
    【解决方案2】:

    您可以修改 testProgs 目录中提供的 test* 文件以从标准输入读取。为此,您需要在调用 main 函数之前“打开”要读取的设备,例如

    int stream = open("/dev/ttyUSB0",O_RDONLY);
    

    然后在您的play() 函数中,在创建字节流源之前,您需要调用read() 函数。这对我来说非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多