[FFmpeg-devel] I have an issue when try to using h264_amf encoding rtsp stream
Dmitrii Ovchinnikov
ovchinnikov.dmitrii at gmail.com
Tue Apr 18 20:55:12 EEST 2023
For libx264 the default gop size is 10, while for amf the default gop size
is 250. I suspect this is the reason.
Try adding the following parameter “* -g 10* ” when using amf encoder.
This parameter will set gop size to 10.
вт, 11 апр. 2023 г. в 09:42, 罗勇刚(Yonggang Luo) <luoyonggang at gmail.com>:
> When using libx264:
> The pull result is:
> ```
> C:\work\xtal\xtal-video\ffmpeg-6.0-full_build-shared\bin>ffplay -max_delay
> 0 -max_probe_packets 1 -analyzeduration 0 -flags +low_delay -fflags
> +nobuffer -protocol_whitelist file,udp,rtp rtp_h264_30003.sdp
> ffplay version 6.0-full_build-www.gyan.dev Copyright (c) 2003-2023 the
> FFmpeg developers
> built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
> configuration: --enable-gpl --enable-version3 --enable-shared
> --disable-w32threads --disable-autodetect --enable-fontconfig
> --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib
> --enable-lzma --enable-libsnappy --enable-zlib --enable-librist
> --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
> --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
> --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi
> --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264
> --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom
> --enable-libjxl --enable-libopenjpeg --enable-libvpx
> --enable-mediafoundation --enable-libass --enable-frei0r
> --enable-libfreetype --enable-libfribidi --enable-liblensfun
> --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
> --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
> --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl
> --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl
> --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt
> --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine
> --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc
> --enable-libilbc --enable-libgsm --enable-libopencore-amrnb
> --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa
> --enable-libbs2b --enable-libflite --enable-libmysofa
> --enable-librubberband --enable-libsoxr --enable-chromaprint
> libavutil 58. 2.100 / 58. 2.100
> libavcodec 60. 3.100 / 60. 3.100
> libavformat 60. 3.100 / 60. 3.100
> libavdevice 60. 1.100 / 60. 1.100
> libavfilter 9. 3.100 / 9. 3.100
> libswscale 7. 1.100 / 7. 1.100
> libswresample 4. 10.100 / 4. 10.100
> libpostproc 57. 1.100 / 57. 1.100
> Input #0, sdp, from 'rtp_h264_30003.sdp':= 0KB sq= 0B f=0/0
> Duration: N/A, start: -0.017911, bitrate: N/A
> Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1060, 50 fps,
> 50 tbr, 90k tbn
> 3.79 M-V: 3.731 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
> ```
>
> But when using h264_amf:
> ```
>
> C:\work\xtal\xtal-video\ffmpeg-6.0-full_build-shared\bin>ffplay -max_delay
> 0 -max_probe_packets 1 -analyzeduration 0 -flags +low_delay -fflags
> +nobuffer -protocol_whitelist file,udp,rtp rtp_h264_30003.sdp
> ffplay version 6.0-full_build-www.gyan.dev Copyright (c) 2003-2023 the
> FFmpeg developers
> built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
> configuration: --enable-gpl --enable-version3 --enable-shared
> --disable-w32threads --disable-autodetect --enable-fontconfig
> --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib
> --enable-lzma --enable-libsnappy --enable-zlib --enable-librist
> --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
> --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
> --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi
> --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264
> --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom
> --enable-libjxl --enable-libopenjpeg --enable-libvpx
> --enable-mediafoundation --enable-libass --enable-frei0r
> --enable-libfreetype --enable-libfribidi --enable-liblensfun
> --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
> --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
> --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl
> --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl
> --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt
> --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine
> --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc
> --enable-libilbc --enable-libgsm --enable-libopencore-amrnb
> --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa
> --enable-libbs2b --enable-libflite --enable-libmysofa
> --enable-librubberband --enable-libsoxr --enable-chromaprint
> libavutil 58. 2.100 / 58. 2.100
> libavcodec 60. 3.100 / 60. 3.100
> libavformat 60. 3.100 / 60. 3.100
> libavdevice 60. 1.100 / 60. 1.100
> libavfilter 9. 3.100 / 9. 3.100
> libswscale 7. 1.100 / 7. 1.100
> libswresample 4. 10.100 / 4. 10.100
> libpostproc 57. 1.100 / 57. 1.100
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header errorq= 0B f=0/0
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header errorq= 0B f=0/0
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> [h264 @ 000001ba7836b100] non-existing PPS 0 referenced 0B f=0/0
> Last message repeated 1 times
> [h264 @ 000001ba7836b100] decode_slice_header error
> [h264 @ 000001ba7836b100] no frame!
> ```
>
> And if I start the ffplay pull script before the rstp push executable,
> then it can decoding the stream properly.
> ```
>
> C:\work\xtal\xtal-video\ffmpeg-6.0-full_build-shared\bin>ffplay -max_delay
> 0 -max_probe_packets 1 -analyzeduration 0 -flags +low_delay -fflags
> +nobuffer -protocol_whitelist file,udp,rtp rtp_h264_30003.sdp
> ffplay version 6.0-full_build-www.gyan.dev Copyright (c) 2003-2023 the
> FFmpeg developers
> built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
> configuration: --enable-gpl --enable-version3 --enable-shared
> --disable-w32threads --disable-autodetect --enable-fontconfig
> --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib
> --enable-lzma --enable-libsnappy --enable-zlib --enable-librist
> --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth
> --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24
> --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi
> --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264
> --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom
> --enable-libjxl --enable-libopenjpeg --enable-libvpx
> --enable-mediafoundation --enable-libass --enable-frei0r
> --enable-libfreetype --enable-libfribidi --enable-liblensfun
> --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf
> --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
> --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl
> --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl
> --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt
> --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine
> --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc
> --enable-libilbc --enable-libgsm --enable-libopencore-amrnb
> --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa
> --enable-libbs2b --enable-libflite --enable-libmysofa
> --enable-librubberband --enable-libsoxr --enable-chromaprint
> libavutil 58. 2.100 / 58. 2.100
> libavcodec 60. 3.100 / 60. 3.100
> libavformat 60. 3.100 / 60. 3.100
> libavdevice 60. 1.100 / 60. 1.100
> libavfilter 9. 3.100 / 9. 3.100
> libswscale 7. 1.100 / 7. 1.100
> libswresample 4. 10.100 / 4. 10.100
> libpostproc 57. 1.100 / 57. 1.100
> Input #0, sdp, from 'rtp_h264_30003.sdp':= 0KB sq= 0B f=0/0
> Duration: N/A, start: -0.053911, bitrate: N/A
> Stream #0:0: Video: h264 (Main), yuv420p(tv, bt709/reserved/reserved,
> progressive), 1920x1060 [SAR 1:1 DAR 96:53], 50 fps, 50 tbr, 90k tbn
> ```
>
> Is that a bug of h264_amf or the config option for h264_amf is invalid?
>
>
>
> --
> 此致
> 礼
> 罗勇刚
> Yours
> sincerely,
> Yonggang Luo
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>
--
Sincerely, Ovchinnikov D.A.
More information about the ffmpeg-devel
mailing list