我正在尝试使用FFmpeg(使用IJKPlayer)从相机流式传输RTSP流。我试图在iOS上这样做,所以我自己编译了FFmpeg。
但是,当我尝试播放流时,似乎会产生错误:
无法找到流0的编解码器参数(视频:h264,1参考 frame,none(left)):未指定的大小考虑增加值 'analyzeuration'和'probesize'选项
再往下,显示的流信息如下:
Metadata:
title : streamed by the Santachi RTSP server
Duration: N/A, start: 0.000000, bitrate: 64 kb/s
Stream #0:0, 0, 1/90000: Video: h264, 1 reference frame, none(left), 90k tbr, 90k tbn, 180k tbc
Stream #0:1, 0, 1/8000: Audio: pcm_alaw, 8000 Hz, 1 channels, s16, 64 kb/s
作为参考,当我尝试从我的PC连接到流时,它可以工作,我得到的流信息如下:
Metadata:
title : streamed by the Santachi RTSP server
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0, 28, 1/90000: Video: h264 (Main), 1 reference frame, yuv420p(progressive, left), 1280x720, 0/1, 20 tbr, 90k tbn, 180k tbc
Stream #0:1, 17, 1/8000: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
看到编解码器是yuv420p,我重新编译了FFmpeg并包含以下选项:
COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=yuv4"
COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=yuv4mpegpipe"
H264解码器和解析器已经启用。但结果是一样的。此外,来自不同来源的其他流似乎工作正常。只是这个特定的相机的流不起作用。
因为看起来FFmpeg在正确编译时可以使用流,所以在编译时我似乎缺少一些选项,但我不知道哪些选项。有什么帮助吗?
答案 0 :(得分:1)
我设法通过切换到VLCKit(可用作iOS的Pod)来解决我的问题。虽然它仍然使用下面的ffmpeg,但它对流做了一些“魔术”,它似乎工作正常。