[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