[FFmpeg-trac] #9766(undetermined:new): h264_qsv decoder does not work with RTSP
FFmpeg
trac at avcodec.org
Wed May 4 20:05:40 EEST 2022
#9766: h264_qsv decoder does not work with RTSP
-------------------------------------+-------------------------------------
Reporter: Steve | Type: defect
Sampson |
Status: new | Priority: normal
Component: | Version: git-
undetermined | master
Keywords: QSV RTSP | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
How to reproduce:
{{{
% ffmpeg.exe -init_hw_device qsv:hw,child_device_type=d3d11va -hwaccel qsv
-c:v h264_qsv -hwaccel_output_format qsv -i
rtsp://user:password@172.16.1.105/axis-media/media.amp -f null -
ffmpeg version: ffmpeg version 5.0-full_build-www.gyan.dev downloaded on
2022-01-16, so build is around that date.
Running on Windows 10 with an Intel GPU (Intel UHD Graphics 620, but I
suspect this problem isn't related to the exact hardware version - it also
reproduced on another machine). The RTSP stream comes from a camera. It
looks like it has a pixel format of 720x576, pix_fmt: yuvj420p. If there
is a way to capture this stream such that someone else can reproduce the
error, please let me know. I suspect the reproduction of this problem
requires a genuine RTSP server.
When running, it initializes the connection to the RTSP server and then
logs an error
Error initializing the MFX video decoder: invalid video parameters (-15)
The same command line successfully decodes using an mp4 file instead of an
RTSP input (captured from the camera using ffmpeg -i
rtsp://user:password@172.16.1.105/axis-media/media.amp -acodec copy
-vcodec copy c:/abc.mp4)
''The RTSP stream decodes successfully without any hardware
acceleration.'' That is, with a command line of "ffmpeg.exe -i
rtsp://user:password@172.16.1.105/axis-media/media.amp -f null -". It also
is correctly displayed in VLC. I tried many different combinations of
command line parameters (for example just with -hwaccel qsv -c:v h264_qsv)
and none were successful.
}}}
My commentary/analysis
{{{
Note that I am not at all an expert on FFMPEG. I was tasked to GPU-enable
our existing code and this is my first serious look at FFMPEG.
The use case is to display the video from a set of cameras (all RTSP, all
H264). Our code uses the FFMPEG API and doesn't use the FFMPEG program but
my tests have been using FFMPEG.
The actual build I wish(ed) to use is an older build of ffmpeg (branched
in 2019 and slightly modified by my team - but the decoding wasn't
touched). It gives a different error string but it may be a similar root
cause. I tried to debug it to figure out what was going wrong. The error
in that version was "non-existing PPS 0 referenced" (from parse_nal_units)
and then "Decoding pixel format '(null)' is not supported" (from
ff_qsv_process_data).
I can't easily make my own build of FFMPEG (the process of building with
Windows is too complex for me to quickly do) or I would attempt using the
latest code.
The SPD returned by the camera is the following
SDP:
v=0
o=- 1651685682795324 1651685682795324 IN IP4 172.16.1.105
s=Media Presentation
e=NONE
b=AS:50000
t=0 0
a=control:*
a=range:npt=0.000000-
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:50000
a=framerate:25.0
a=transform:0.937500,0.000000,0.000000;0.000000,1.000000,0.000000;0.000000,0.000000,1.000000
a=control:trackID=1
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; profile-level-id=420029; sprop-parameter-
sets=Z0IAKeKQFoJNgScFAQXh4kRU,aM48gA==
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9766>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list