Closed AlPasser closed 3 years ago
版本的话,我用的是前面环境配置文档里Ubuntu apt get install的版本。 你这个图里看起来比较奇怪的是frame rate都是0,你可以尝试代码里写死一个frame rate。 我不清楚这里为什么我的rtsp输入没有获取到正确的frame rate。 可能是有些场景我没处理好吧
再看了一下你这个图,你已经写死了time_base,那我暂时看不出来是什么问题了,而且没有错误码直接coredump,可以检查一下video_avcc合video_avc这两个指针对应的对象是不是有问题。比如前面打开输出流就失败了,但是我没有检查
或者设置一下AV_LOG LEVEL 或者用gdb看看挂在哪了
好的,我觉得还是环境问题,我自己整整环境再照着 FFmpeg 文档改改
应该是跑起来了,在我这是 libx264 依赖的问题,之前是编译源码安装的,卸了用 apt 重装了下,命令如下:
sudo apt install yasm libsdl2-dev libx264-dev libx265-dev libfdk-aac-dev
但推出来的流是这样的:
源码还在慢慢看,请问老哥可以快速定位这个问题吗?
补一张截屏,这应该是画框^_^
应该是跑起来了,在我这是 libx264 依赖的问题,之前是编译源码安装的,卸了用 apt 重装了下,命令如下:
sudo apt install yasm libsdl2-dev libx264-dev libx265-dev libfdk-aac-dev
但推出来的流是这样的: 源码还在慢慢看,请问老哥可以快速定位这个问题吗?
设置一下av_set_log_level 设成TRACE,ffmpeg的日志还是挺全的。 能看到绿色画面应该说明至少有流了,没有流应该是转圈圈
有框的话可能是,流程上没有用resize之后的图像画框,而是直接拿了个空的buffer画框。。 你可以检查一下main函数那个文件里的流程
整了一天,还是绿的...... 在 dvpp_decoder.cpp 文件里的 DvppDecCallback 函数里加了一段测试代码: 这里输出的图片就全是绿的了......讲道理在这个回调函数里,应该已经是解码后得到的 yuv420sp 里吧 但还奇怪,走的模型推理 total box num 还有时候大于 0,看来推理成功了......
整了一天,还是绿的...... 在 dvpp_decoder.cpp 文件里的 DvppDecCallback 函数里加了一段测试代码: 这里输出的图片就全是绿的了......讲道理在这个回调函数里,应该已经是解码后得到的 yuv420sp 里吧 但还奇怪,走的模型推理 total box num 还有时候大于 0,看来推理成功了......
要不你试一下按照我的文档中的例子,另外用VLC推个流试试。
然后设置一下ffmpeg日志等级,看看有没有什么线索。 看一下npu的host日志,看一下有没有特别的错误。
最近出差没有办法直接帮你看。
整了一天,还是绿的...... 在 dvpp_decoder.cpp 文件里的 DvppDecCallback 函数里加了一段测试代码: 这里输出的图片就全是绿的了......讲道理在这个回调函数里,应该已经是解码后得到的 yuv420sp 里吧 但还奇怪,走的模型推理 total box num 还有时候大于 0,看来推理成功了......
要不你试一下按照我的文档中的例子,另外用VLC推个流试试。
然后设置一下ffmpeg日志等级,看看有没有什么线索。 看一下npu的host日志,看一下有没有特别的错误。
最近出差没有办法直接帮你看。
ok
用 VLC 推流没有问题,但 UDP 丢包严重,老是花屏。
我是用 EasyDarwin + FFmpeg 搭的 RTSP 测试流:https://github.com/EasyDarwin/EasyDarwin。
FFmpeg 命令:
ffmpeg -re -i testshanghai_720p.mp4 -rtsp_transport tcp -vcodec h264 -strict -2 -f rtsp rtsp://localhost/test
我还在尝试修改我的 FFmpeg 命令看看能不能跑通......
用 VLC 推流没有问题,但 UDP 丢包严重,老是花屏。 我是用 EasyDarwin + FFmpeg 搭的 RTSP 测试流:https://github.com/EasyDarwin/EasyDarwin。 FFmpeg 命令:
ffmpeg -re -i testshanghai_720p.mp4 -rtsp_transport tcp -vcodec h264 -strict -2 -f rtsp rtsp://localhost/test
我还在尝试修改我的 FFmpeg 命令看看能不能跑通......
就是说,你尝试用VLC推流,功能是正常的,但是效果不好。 你这种推流方式我下周有时间了也去测试一下。
这个问题已经定位解决,原因是,在你这种推流场景下,不知道为什么在码流中间没有SPS和PPS的包。 解决方法:把AVCodecContext中的extradata当作packet传给VDEC。 https://github.com/lenLRX/Atlas200DK_ACL/blob/master/src/ffmpeg_input.cpp#L128
编译成功,但 FFmpeg avcodec_open2 过不去。