Ich habe eine Anwendung in Flask, die eine Kamera mit ffmpeg streamt. Das Problem ist, dass ich das Video von der KameraPython

Python-Programme
Guest
 Ich habe eine Anwendung in Flask, die eine Kamera mit ffmpeg streamt. Das Problem ist, dass ich das Video von der Kamera

Post by Guest »

Ich bringe Sie in den Kontext: Ich verwende Flask (Python), um eine Kamera im Browser anzuzeigen, um sie zu streamen. Dazu verwende ich den folgenden Befehl:

Code: Select all

command = [
'ffmpeg',
'-loglevel', 'warning',
'-rtsp_transport', 'tcp',
'-i', self.config['url'],
'-map', '0:v:0', # fuerzo que solo procese el video
'-vf', f'fps={self.config["fps"]},scale=640:360:force_original_aspect_ratio=decrease',
'-c:v', 'h264_nvenc', # especificamos que queremos tirar de la gpu de nvidia
'-preset', 'p7', # ajusta para la maxima calidad/velocidad (p1 mas rapida pero peor calidad - p7 más lento pero mejor calidad)
'-qp', self.config['quality'], # control de calidad del codificador (0 [mejor calidad] - 51 [peor calidad])
'-pix_fmt', 'yuv444p', # se mete explicitamente el formato de pixeles
'-color_range', 'pc',
'-an', # desactiva el audio
'-f', 'image2pipe',
'pipe:1'
]
Das Problem ist, dass das Video-Streaming nicht angezeigt wird, aber die Verbindung zur Kamera korrekt hergestellt wird.
Andererseits zeigt es mir die folgenden Warnungen, die möglicherweise etwas mit der Anzeige zu tun haben, es ist wahrscheinlich die zweite Warnung, die mit dem Pixelformat zu tun hat:
DEBUG:main:FFmpeg [camera1]: Erratenes Kanallayout für Eingabestream #0.1: Mono
DEBUG:main
:FFmpeg [camera1]: [swscaler @ 0x560f70b78680] veraltetes Pixelformat verwendet, stellen Sie sicher, dass Sie den Bereich richtig eingestellt habenAuf dem Server sind verschiedene Kodierungen installiert:
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 Teil 10 (Decoder: h264 h264_v4l2m2m h264_qsv h264_cuvid) (Encoder: libx264 libx264rgb h264_nvenc h264_omx h264_qsv h264_v4l2m2m h264_vaapi nvenc nvenc_h264 )
Sie verwenden h264_nvenc, außerdem unterstützt der Server die Beschleunigung der Hardware mit:
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
Hardwarebeschleunigungsmethoden:
vdpau
cuda
vaapi
qsv
drm
opencl

Dazwischen verwendet h264_nvenc cuda
Ich erweitere ein wenig die Informationen, die ich bei der Verwendung von h264_nvenc erhält:

Code: Select all

Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:
General capabilities: dr1 delay hardware
Threading capabilities: none
Supported hardware devices: cuda cuda
Supported pixel formats: yuv420p nv12 p010le yuv444p p016le yuv444p16le bgr0 rgb0 cuda
h264_nvenc AVOptions:
-preset                    E..V....... Set the encoding preset (from 0 to 18) (default p4)
default         0            E..V.......
slow            1            E..V....... hq 2 passes
medium          2            E..V....... hq 1 pass
fast            3            E..V....... hp 1 pass
hp              4            E..V.......
hq              5            E..V.......
bd              6            E..V.......
ll              7            E..V....... low latency
llhq            8            E..V....... low latency hq
llhp            9            E..V....... low latency hp
lossless        10           E..V.......
losslesshp      11           E..V.......
p1              12           E..V....... fastest (lowest quality)
p2              13           E..V....... faster (lower quality)
p3              14           E..V....... fast (low quality)
p4              15           E..V....... medium (default)
p5              16           E..V....... slow (good quality)
p6              17           E..V....... slower (better quality)
p7              18           E..V....... slowest (best quality)
-tune                      E..V....... Set the encoding tuning info (from 1 to 4) (default hq)
hq              1            E..V....... High quality
ll              2            E..V....... Low latency
ull             3            E..V....... Ultra low latency
lossless        4            E..V....... Lossless
-profile                   E..V.......  Set the encoding profile (from 0 to 3) (default main)
baseline        0            E..V.......
main            1            E..V.......
high            2            E..V.......
high444p        3            E..V.......
-level                     E..V....... Set the encoding level restriction (from 0 to 62) (default auto)
auto            0            E..V.......
1               10           E..V.......
1.0             10           E..V.......
1b              9            E..V.......
1.0b            9            E..V.......
1.1             11           E..V.......
1.2             12           E..V.......
1.3             13           E..V.......
2               20           E..V.......
2.0             20           E..V.......
2.1             21           E..V.......
2.2             22           E..V.......
3               30           E..V.......
3.0             30           E..V.......
3.1             31           E..V.......
3.2             32           E..V.......
4               40           E..V.......
4.0             40           E..V.......
4.1             41           E..V.......
4.2             42           E..V.......
5               50           E..V.......
5.0             50           E..V.......
5.1             51           E..V.......
5.2             52           E..V.......
6.0             60           E..V.......
6.1             61           E..V.......
6.2             62           E..V.......
-rc                        E..V....... Override the preset rate-control (from -1 to INT_MAX) (default -1)
constqp         0            E..V....... Constant QP mode
vbr             1            E..V....... Variable bitrate mode
cbr             2            E..V....... Constant bitrate mode
vbr_minqp       8388612      E..V....... Variable bitrate mode with MinQP (deprecated)
ll_2pass_quality 8388616      E..V....... Multi-pass optimized for image quality (deprecated)
ll_2pass_size   8388624      E..V....... Multi-pass optimized for constant frame size (deprecated)
vbr_2pass       8388640      E..V....... Multi-pass variable bitrate mode (deprecated)
cbr_ld_hq       8388616      E..V....... Constant bitrate low delay high quality mode
cbr_hq          8388624      E..V....... Constant bitrate high quality mode
vbr_hq          8388640      E..V....... Variable bitrate high quality mode
-rc-lookahead              E..V....... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
-surfaces                  E..V....... Number of concurrent surfaces (from 0 to 64) (default 0)
-cbr                   E..V....... Use cbr encoding mode (default false)
-2pass                 E..V....... Use 2pass encoding mode (default auto)
-gpu                       E..V....... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
any             -1           E..V....... Pick the first device available
list            -2           E..V....... List the available devices
-delay                     E..V....... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
-no-scenecut           E..V....... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
-forced-idr            E..V....... If forcing keyframes, force them as IDR frames. (default false)
-b_adapt               E..V....... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
-spatial-aq            E..V....... set to 1 to enable Spatial AQ (default false)
-spatial_aq            E..V....... set to 1 to enable Spatial AQ (default false)
-temporal-aq           E..V....... set to 1 to enable Temporal AQ (default false)
-temporal_aq           E..V....... set to 1 to enable Temporal AQ (default false)
-zerolatency           E..V....... Set 1 to indicate zero latency operation (no reordering delay) (default false)
-nonref_p              E..V....... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
-strict_gop            E..V....... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
-aq-strength               E..V.......  When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
-cq                      E..V....... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
-aud                   E..V....... Use access unit delimiters (default false)
-bluray-compat         E..V....... Bluray compatibility workarounds (default false)
-init_qpP                  E..V....... Initial QP value for P frame (from -1 to 51) (default -1)
-init_qpB                  E..V....... Initial QP value for B frame (from -1 to 51) (default -1)
-init_qpI                  E..V....... Initial QP value for I frame (from -1 to 51) (default -1)
-qp                        E..V....... Constant quantization parameter rate control method (from -1 to 51) (default -1)
-weighted_pred             E..V....... Set 1 to enable weighted prediction (from 0 to 1) (default 0)
-coder                     E..V....... Coder type (from -1 to 2) (default default)
default         -1           E..V.......
auto            0            E..V.......
cabac           1            E..V.......
cavlc           2            E..V.......
ac              1            E..V.......
vlc             2            E..V.......
-b_ref_mode                E..V....... Use B frames as references (from 0 to 2) (default disabled)
disabled        0            E..V....... B frames will not be used for reference
each            1            E..V....... Each B frame will be used for reference
middle          2            E..V....... Only (number of B frames)/2 will be used for reference
-a53cc                 E..V....... Use A53 Closed Captions (if available) (default true)
-dpb_size                  E..V....... Specifies the DPB size used for encoding (0 means automatic) (from 0 to INT_MAX) (default 0)
-multipass                 E..V....... Set the multipass encoding (from 0 to 2) (default disabled)
disabled        0            E..V....... Single Pass
qres            1            E..V....... Two Pass encoding is enabled where first Pass is quarter resolution
fullres         2            E..V....... Two Pass encoding is enabled where first Pass is full resolution
-ldkfs                     E..V....... Low delay key frame scale; Specifies the Scene Change frame size increase allowed in case of single frame VBV and CBR (from 0 to 255) (default 0)
Wenn jemand eine Idee hat oder weitere Informationen benötigt, die mir helfen, wäre ich dankbar.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post