小编Kag*_*uki的帖子

无法找到"libcrypto.so"引用的符号'tcgetattr'

我正在为Android应用程序构建一个帮助程序库,我需要为我正在使用的一些支持库提供完整的OpenSSL实现.我正在创建一个构建链并编译libssllibcrypto使用它但在运行时我得到:

java.lang.ExceptionInInitializerError
  Caused by: java.lang.UnsatisfiedLinkError: Cannot load library:
    soinfo_relocate(linker.cpp:975): cannot locate symbol "tcgetattr" referenced by "libcrypto.so.1.0.0"...
Run Code Online (Sandbox Code Playgroud)

我猜我需要做些什么来帮助tcgetattr在运行时找到它?

java android openssl android-ndk

5
推荐指数
1
解决办法
1774
查看次数

FFMPEG:RTSP 流冻结但 FFMPEG 继续录制

编辑:在撰写本文时,FFMPEG 中没有任何功能可以检测/处理 RTP/RTSP 流何时仍处于活动状态但不再传送有效帧。我能找到的唯一解决方案是通过停止录制来定期重置流,然后重新连接并开始新的录制,但这-f segment是行不通的。


我正在使用 FFMPEG 从网络摄像机录制 RTSP 流,并在一段时间后(通常大约一个半小时到两个小时)。我确信这具体是我使用的相机的问题,而不是 FFMPEG 或我的系统资源的问题。

具体发生的情况是视频冻结,但摄像机的网络流量仍在继续 - 它似乎没有发送新帧。由于这种行为,FFMPEG 不会断开连接/继续录制,因为网络连接仍然存在。几分钟后,FFMPEG 输出中总会出现一个警告: More than 1000 frames duplicated 但它会继续录制 - 只是一遍又一遍地显示同一帧。

我正在使用的命令是:

ffmpeg -stimeout 1000000 -rtsp_transport udp -fflags discardcorrupt -i rtsp://192.168.1.163/live/0/MAIN -vc libx265 -f segment -segment_time 300 -segment_atclocktime 1 -reset_timestamps 1 -strftime 1  "163-%Y-%m-%d_%H-%M-%S-h265.mp4"
Run Code Online (Sandbox Code Playgroud)

一些注意事项:

  • stimeout 似乎没有做任何事情,因为网络连接保持不变,相机似乎只是停止发送(有效)帧。
  • 更改复制的编解码器并不能改善问题
  • 更改 RTSP 传输并不能改善问题
  • 我知道有一个过滤器可以检测冻结帧,但我的 FFMPEG 似乎没有它 - 我现在要尝试自己构建 FFMPEG;但更喜欢与捆绑的 FFMPEG 一起使用的解决方案 ~> 4.1.3

让 FFMPEG 在复制 > 1000 帧后失败并退出实际上是理想的,因为这样我就可以从脚本中生成 FFMPEG,监视进程,并在进程结束时重新启动它。任何解决方案都会很棒。

ffmpeg rtsp

5
推荐指数
1
解决办法
3260
查看次数

标签 统计

android ×1

android-ndk ×1

ffmpeg ×1

java ×1

openssl ×1

rtsp ×1