FFmpeg 找不到 yuv420p 流的编解码器参数
FFmpeg cannot find codec parameters for yuv420p stream
我正在尝试使用 FFmpeg(带有 IJKPlayer)从相机流式传输 RTSP 流。我正在尝试在 iOS 上执行此操作,所以我自己编译了 FFmpeg。
但是,当我尝试播放流时,似乎产生了一个错误:
Could not find codec parameters for stream 0 (Video: h264, 1 reference
frame, none(left)): unspecified size Consider increasing the value for
the 'analyzeduration' and 'probesize' options
再往下显示的流信息如下:
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 似乎在正确编译时可以使用流,因此我在编译时似乎缺少一些选项,但我不知道哪些选项。有帮助吗?
我通过切换到 VLCKit(可用作 iOS 的 Pod)设法解决了我的问题。虽然它仍然在底层使用 ffmpeg,但它对流做了一些 "magic" 并且似乎工作正常。
我正在尝试使用 FFmpeg(带有 IJKPlayer)从相机流式传输 RTSP 流。我正在尝试在 iOS 上执行此操作,所以我自己编译了 FFmpeg。
但是,当我尝试播放流时,似乎产生了一个错误:
Could not find codec parameters for stream 0 (Video: h264, 1 reference frame, none(left)): unspecified size Consider increasing the value for the 'analyzeduration' and 'probesize' options
再往下显示的流信息如下:
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 似乎在正确编译时可以使用流,因此我在编译时似乎缺少一些选项,但我不知道哪些选项。有帮助吗?
我通过切换到 VLCKit(可用作 iOS 的 Pod)设法解决了我的问题。虽然它仍然在底层使用 ffmpeg,但它对流做了一些 "magic" 并且似乎工作正常。