
Recherche avancée
Médias (2)
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (61)
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...) -
Déploiements possibles
31 janvier 2010, parDeux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
Version mono serveur
La version mono serveur consiste à n’utiliser qu’une (...)
Sur d’autres sites (7740)
-
How can I increase the performance of this video watermarking call which seems to be only using 6% of my system's CPU ? Currently using ffmpeg
24 août 2023, par CodemonkeyI have a php script to add a watermark to an uploaded video, using ffmpeg


shell_exec("ffmpeg -y -i input.mp4 -i watermark.png -filter_complex $filter output.mp4")



The video is 36 seconds long, 33MB and 1080x1920, 24fps. The output video comes in at 8MB, scaled down to 540x960 with a PNG overlaid as a watermark.


The script takes about 3 seconds, averaging 320fps or so. For a one-off this would be ok, but I'm going to be processing hundreds/thousands of these at a time.


I have 128GB of ram and an EPYC 7502p (32cores/64threads), and both input and output files are on NVMe drives.


If I monitor
top
showing all my cores/threads in another window, with refresh delay set to a variety of things from 0.1 to 2 seconds, I'd guesstimate that this hits about 1/4 of my available threads, at about 25% utilisation each.

So it kind of feels like I COULD see a 16x speed increase if it hit all of them at 100%. That actually wouldn't be ideal, locking up the server of course, but when my CPU is sat at 99% idle 99% of the time, I feel it could do better - it'd be nice to see it hitting at least half the cores or utilising at least 50% of them when it does...


So, is there anything I can change with ffmpeg's config/build or the way I call it ? If this is as good as ffmpeg can do, are there better tools for the job ?


Thank you



EDIT :


A few things I've learnt since posting :


- 

-c:v libx264 -preset ultrafast
- marginal helpnice -n -10
- marginal help (changing to -20 is makes negligible difference)-c:a copy
- significant help, which I found surprising








FPS up from 320 to 540 using those 3 combined. I still feel there should be significantly more gains somewhere though...



Here's the output from the original script, if it helps :


ffmpeg version 4.2.9 Copyright (c) 2000-2023 the FFmpeg developers
 built with gcc 8 (GCC)
 configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' --extra-cflags=' ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-libsrt --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-libzvbi --enable-avfilter --enable-avresample --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-libmfx --enable-runtime-cpudetect
 libavutil 56. 31.100 / 56. 31.100
 libavcodec 58. 54.100 / 58. 54.100
 libavformat 58. 29.100 / 58. 29.100
 libavdevice 58. 8.100 / 58. 8.100
 libavfilter 7. 57.100 / 7. 57.100
 libavresample 4. 0. 0 / 4. 0. 0
 libswscale 5. 5.100 / 5. 5.100
 libswresample 3. 5.100 / 3. 5.100
 libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
 Metadata:
 major_brand : M4V
 minor_version : 1
 compatible_brands: isomavc1mp42
 creation_time : 2023-07-03T14:55:37.000000Z
 Duration: 00:00:36.50, start: 0.000000, bitrate: 7315 kb/s
 Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/unknown), 1080x1920 [SAR 1:1 DAR 9:16], 7213 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
 Metadata:
 creation_time : 2023-07-03T14:55:37.000000Z
 handler_name : ETI ISO Video Media Handler
 encoder : Elemental H.264
 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 96 kb/s (default)
 Metadata:
 creation_time : 2023-07-03T14:55:37.000000Z
 handler_name : ETI ISO Audio Media Handler
Input #1, png_pipe, from 'watermark.png':
 Duration: N/A, bitrate: N/A
 Stream #1:0: Video: png, rgba(pc), 1232x804 [SAR 11811:11811 DAR 308:201], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
 Stream #0:0 (h264) -> scale (graph 0)
 Stream #1:0 (png) -> scale (graph 0)
 overlay (graph 0) -> Stream #0:0 (libx264)
 Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x56510d488e00] using SAR=1/1
[libx264 @ 0x56510d488e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x56510d488e00] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x56510d488e00] 264 - core 157 r2980 34c06d1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=30 lookahead_threads=5 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
 Metadata:
 major_brand : M4V
 minor_version : 1
 compatible_brands: isomavc1mp42
 encoder : Lavf58.29.100
 Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 540x960 [SAR 1:1 DAR 9:16], q=-1--1, 24 fps, 12288 tbn, 24 tbc (default)
 Metadata:
 encoder : Lavc58.54.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 creation_time : 2023-07-03T14:55:37.000000Z
 handler_name : ETI ISO Audio Media Handler
 encoder : Lavc58.54.100 aac
frame= 876 fps=324 q=-1.0 Lsize= 7768kB time=00:00:36.45 bitrate=1745.5kbits/s speed=13.5x
video:7177kB audio:566kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.336181%
[libx264 @ 0x56510d488e00] frame I:9 Avg QP:21.46 size: 37765
[libx264 @ 0x56510d488e00] frame P:237 Avg QP:23.78 size: 17862
[libx264 @ 0x56510d488e00] frame B:630 Avg QP:28.03 size: 4405
[libx264 @ 0x56510d488e00] consecutive B-frames: 2.9% 2.5% 3.8% 90.9%
[libx264 @ 0x56510d488e00] mb I I16..4: 13.6% 65.9% 20.5%
[libx264 @ 0x56510d488e00] mb P I16..4: 5.2% 16.6% 4.1% P16..4: 32.8% 18.0% 12.5% 0.0% 0.0% skip:10.8%
[libx264 @ 0x56510d488e00] mb B I16..4: 1.1% 2.7% 0.2% B16..8: 35.3% 7.2% 2.5% direct: 3.3% skip:47.7% L0:37.0% L1:52.2% BI:10.8%
[libx264 @ 0x56510d488e00] 8x8 transform intra:65.0% inter:71.5%
[libx264 @ 0x56510d488e00] coded y,uvDC,uvAC intra: 54.7% 62.1% 11.5% inter: 17.9% 12.9% 0.5%
[libx264 @ 0x56510d488e00] i16 v,h,dc,p: 16% 28% 8% 47%
[libx264 @ 0x56510d488e00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 23% 18% 6% 6% 7% 7% 7% 7%
[libx264 @ 0x56510d488e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 16% 11% 7% 9% 10% 8% 8% 8%
[libx264 @ 0x56510d488e00] i8c dc,h,v,p: 55% 20% 20% 5%
[libx264 @ 0x56510d488e00] Weighted P-Frames: Y:5.5% UV:3.4%
[libx264 @ 0x56510d488e00] ref P L0: 65.0% 18.8% 13.0% 3.0% 0.2%
[libx264 @ 0x56510d488e00] ref B L0: 95.0% 4.0% 1.1%
[libx264 @ 0x56510d488e00] ref B L1: 98.2% 1.8%
[libx264 @ 0x56510d488e00] kb/s:1610.57
[aac @ 0x56510d4865c0] Qavg: 22331.562



-
Transcode WEBM to RTMP
7 avril 2024, par Justin WhiteSummary


My goal is to take a webcam stream from the browser and feed it into a program called Restreamer that takes in an RTMP stream.


I've deduced that the browser Recording API produces Blobs that can be saved as WEBM.


In order to stream the WEBM content to Restreamer I am attempting to use FFmpeg. I've read that forcing FLV format is required but otherwise all of the arguments are Greek to me. I've been unable to find a comparable topic where someone has tried to go from WEBM to RTMP. I have found examples of going the other direction, but reversing the FFmpeg command proved unfruitful.


Saving to FLV works fine. Using the following command, I am able to transcode a WEBM file to FLV and play it on VLC :

ffmpeg -i ~/big-buck-bunny_trailer.webm -f flv out.flv


However, if instead of outputting to a file I pass it to RTMP I get the following output :

ffmpeg -i ~/Downloads/big-buck-bunny_trailer.webm -f flv "rtmp://example.com/live"


ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
 built with gcc 12 (GCC)
 configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' --extra-cflags=' -I/usr/include/rav1e' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --enable-chromaprint --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libbs2b --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libmysofa --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librav1e --enable-librtmp --enable-librubberband --enable-libsmbclient --enable-version3 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-vulkan --enable-libglslang --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-avfilter --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-lto --enable-libmfx --enable-runtime-cpudetect
 libavutil 57. 17.100 / 57. 17.100
 libavcodec 59. 18.100 / 59. 18.100
 libavformat 59. 16.100 / 59. 16.100
 libavdevice 59. 4.100 / 59. 4.100
 libavfilter 8. 24.100 / 8. 24.100
 libswscale 6. 4.100 / 6. 4.100
 libswresample 4. 3.100 / 4. 3.100
 libpostproc 56. 3.100 / 56. 3.100
Input #0, matroska,webm, from '/home/kyjus25/big-buck-bunny_trailer.webm':
 Metadata:
 encoder : http://sourceforge.net/projects/yamka
 creation_time : 2010-05-20T08:21:12.000000Z
 Duration: 00:00:32.48, start: 0.000000, bitrate: 533 kb/s
 Stream #0:0(eng): Video: vp8, yuv420p(progressive), 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn (default)
 Stream #0:1(eng): Audio: vorbis, 44100 Hz, mono, fltp (default)
HandShake: client signature does not match!
Stream mapping:
 Stream #0:0 -> #0:0 (vp8 (native) -> flv1 (flv))
 Stream #0:1 -> #0:1 (vorbis (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, flv, to 'rtmp://example.com/live':
 Metadata:
 encoder : Lavf59.16.100
 Stream #0:0(eng): Video: flv1 ([2][0][0][0] / 0x0002), yuv420p(tv, bt470bg/unknown/unknown, progressive), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 1k tbn (default)
 Metadata:
 encoder : Lavc59.18.100 flv
 Side data:
 cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
 Stream #0:1(eng): Audio: mp3 ([2][0][0][0] / 0x0002), 44100 Hz, mono, fltp (default)
 Metadata:
 encoder : Lavc59.18.100 libmp3lame
WriteN, RTMP send error 32 (136 bytes)7kB time=00:00:00.39 bitrate= 136.7kbits/s speed=71.2x 
WriteN, RTMP send error 32 (35 bytes)
WriteN, RTMP send error 9 (42 bytes)
av_interleaved_write_frame(): Operation not permitted
 Last message repeated 1 times
[flv @ 0x55d0dd0af700] Failed to update header with correct duration.
[flv @ 0x55d0dd0af700] Failed to update header with correct filesize.
Error writing trailer of rtmp://example.com/live: Operation not permitted
frame= 53 fps=0.0 q=4.3 Lsize= 146kB time=00:00:02.45 bitrate= 486.8kbits/s speed=42.8x 
video:128kB audio:19kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Error closing file rtmp://example.com/live: Operation not permitted
Conversion failed!



There are several interesting rabbit holes to follow here, but after following all of them I've come up with nothing.


•
HandShake: client signature does not match!
:

More of a warning than an error, I assumed because I was going from "WEBM -> FLV" instead of the more traditional "MP4 -> FLV".

•
av_interleaved_write_frame(): Operation not permitted
:

I found several issues on this. One of them calling it a storage issue, the other calling it a file permissions issue. I have plenty of disk space and have tried setting the input file to 777 permissions. However, the examples I've found on it being a file permissions issue all deal with outputting to a file rather than to an an RTMP IP.

•
Failed to update header with correct duration
:

Advice I found was to add-flvflags no_duration_filesize
to the command, which does suppress both "Failed to update..." errors, but does not fix the over-arching issue.

What I've Tried


• Multi-format transcoding


MP4 to RTMP does work correctly :

ffmpeg -i ~/Downloads/big-buck-bunny_trailer.mp4 -f flv "rtmp://example.com/live"

Theoretically, I could stream the WEBM to a file, transcode that to an MP4 file, and then transcode that to FLV/RTMP. Sounds awful.

• Pay for a service (Wowza, Flashphoner, api.video, etc)


Unfortunately precisely what I am trying to avoid.


• WebRTC to RTMP ?


WebRTC seems to be a peer-to-peer connection and doesn't play nicely with a server/client scenario.


• WebRTC to other ingest formats


Restreamer also supports incoming streams of HLS, DASH, RTP, RTSP, RTMP, and SRT. However, these all seem to be examples of network sources that would be exposed via an IP URL. I am not sure that FFmpeg can do that.


• Utilizing ffmpeg-wasm instead of CLI


Available here, I thought that maybe by using a browser implementation I may get different results. But no. Not even an error to the console.


• Streaming from OBS


For the record, yes, I have tried streaming from OBS instead of going through FFmpeg and the Restreamer platform itself does work for normal use. I use it often.


Post Script


I've not been able to find any relevant solutions online. I am shocked that streaming from a browser webcam has not been solved 1000 times prior. This is related to a question made 7 years ago but it was not resolved and Flash is no longer an option.


Recommendations


• Adding
-c:v libx264 -flags:v +global_header -c:a aac -ac 2
:

ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
 built with gcc 12 (GCC)
 configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' --extra-cflags=' -I/usr/include/rav1e' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --enable-chromaprint --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libbs2b --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libmysofa --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librav1e --enable-librtmp --enable-librubberband --enable-libsmbclient --enable-version3 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-vulkan --enable-libglslang --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-avfilter --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-lto --enable-libmfx --enable-runtime-cpudetect
 libavutil 57. 17.100 / 57. 17.100
 libavcodec 59. 18.100 / 59. 18.100
 libavformat 59. 16.100 / 59. 16.100
 libavdevice 59. 4.100 / 59. 4.100
 libavfilter 8. 24.100 / 8. 24.100
 libswscale 6. 4.100 / 6. 4.100
 libswresample 4. 3.100 / 4. 3.100
 libpostproc 56. 3.100 / 56. 3.100
Input #0, matroska,webm, from '/home/kyjus25/big-buck-bunny_trailer.webm':
 Metadata:
 encoder : http://sourceforge.net/projects/yamka
 creation_time : 2010-05-20T08:21:12.000000Z
 Duration: 00:00:32.48, start: 0.000000, bitrate: 533 kb/s
 Stream #0:0(eng): Video: vp8, yuv420p(progressive), 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn (default)
 Stream #0:1(eng): Audio: vorbis, 44100 Hz, mono, fltp (default)
HandShake: client signature does not match!
Stream mapping:
 Stream #0:0 -> #0:0 (vp8 (native) -> h264 (libx264))
 Stream #0:1 -> #0:1 (vorbis (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x561564271fc0] using SAR=1/1
[libx264 @ 0x561564271fc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x561564271fc0] profile High, level 3.0, 4:2:0, 8-bit
[libx264 @ 0x561564271fc0] 264 - core 163 r3060 5db6aa6 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=11 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://example.com/live':
 Metadata:
 encoder : Lavf59.16.100
 Stream #0:0(eng): Video: h264 ([7][0][0][0] / 0x0007), yuv420p(tv, bt470bg/unknown/unknown, progressive), 640x360 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 1k tbn (default)
 Metadata:
 encoder : Lavc59.18.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
 Stream #0:1(eng): Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 encoder : Lavc59.18.100 aac
Larger timestamp than 24-bit: 0xffffff77kB time=00:00:30.18 bitrate= 460.0kbits/s speed=19.7x 
[flv @ 0x56156425e440] Failed to update header with correct duration.
[flv @ 0x56156425e440] Failed to update header with correct filesize.
frame= 812 fps=475 q=-1.0 Lsize= 1901kB time=00:00:32.52 bitrate= 479.0kbits/s speed= 19x 
video:1354kB audio:508kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.123872%
[libx264 @ 0x561564271fc0] frame I:21 Avg QP:15.05 size: 8839
[libx264 @ 0x561564271fc0] frame P:293 Avg QP:20.78 size: 3087
[libx264 @ 0x561564271fc0] frame B:498 Avg QP:22.20 size: 593
[libx264 @ 0x561564271fc0] consecutive B-frames: 14.7% 7.6% 9.2% 68.5%
[libx264 @ 0x561564271fc0] mb I I16..4: 42.6% 41.9% 15.5%
[libx264 @ 0x561564271fc0] mb P I16..4: 4.0% 8.0% 0.9% P16..4: 22.7% 8.0% 4.0% 0.0% 0.0% skip:52.4%
[libx264 @ 0x561564271fc0] mb B I16..4: 1.4% 1.5% 0.2% B16..8: 12.0% 1.0% 0.2% direct: 3.3% skip:80.5% L0:44.1% L1:47.1% BI: 8.8%
[libx264 @ 0x561564271fc0] 8x8 transform intra:53.6% inter:57.0%
[libx264 @ 0x561564271fc0] coded y,uvDC,uvAC intra: 35.1% 37.7% 11.2% inter: 7.8% 9.5% 2.4%
[libx264 @ 0x561564271fc0] i16 v,h,dc,p: 56% 21% 14% 9%
[libx264 @ 0x561564271fc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 26% 21% 3% 3% 4% 4% 3% 4%
[libx264 @ 0x561564271fc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 21% 18% 4% 7% 7% 6% 5% 4%
[libx264 @ 0x561564271fc0] i8c dc,h,v,p: 62% 21% 15% 2%
[libx264 @ 0x561564271fc0] Weighted P-Frames: Y:20.8% UV:19.5%
[libx264 @ 0x561564271fc0] ref P L0: 70.3% 17.7% 9.0% 2.9% 0.0%
[libx264 @ 0x561564271fc0] ref B L0: 89.3% 8.9% 1.9%
[libx264 @ 0x561564271fc0] ref B L1: 96.4% 3.6%
[libx264 @ 0x561564271fc0] kb/s:341.30
[aac @ 0x561564223140] Qavg: 952.636



Seems to complete successfully, but does so rather quickly. Log outputs a new
Larger timestamp than 24-bit: 0xffffff77kB


-
FFMPEG + HW Acceleration + Kepler GPU Lossless encoding not supported ?
11 juillet 2022, par user2522885I'm curious about FFMPEG and GPU hardware acceleration. My Windows 10 system uses the Asus / nVidia GTX 760 graphics card and Intel i5-2500K CPU. My graphics card claims to be of the Kepler architecture with CUDA 3.0 as shown here.


Instead of going through the hassles of compiling FFMPEG with hw acceleration support i downloaded a pre-compiled binary from here and here.


Next, i tried running a test with hw acceleration options as recommended here :


ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i "input.mkv" -c:a copy -c:v h264_nvenc "output.mp4"



I then received the error message :


[h264_nvenc @ 000001c34eeda8c0] Lossless encoding not supported
[h264_nvenc @ 000001c34eeda8c0] Provided device doesn't support required NVENC features
Error initializing output stream 0:0 — Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height


What am i doing wrong ? For the record i install the CUDA setup file but it made no difference. I am using the latest nVidia drivers.


UPDATE


ffmpeg -h encoder=h264_nvenc


ffmpeg version 4.4-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
 built with gcc 10.2.0 (Rev6, Built by MSYS2 project)
 configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --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 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
Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:
 General capabilities: dr1 delay hardware
 Threading capabilities: none
 Supported hardware devices: cuda cuda d3d11va d3d11va
 Supported pixel formats: yuv420p nv12 p010le yuv444p p016le yuv444p16le bgr0 rgb0 cuda d3d11
h264_nvenc AVOptions:
 -preset <int> 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 <int> 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 <int> 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 <int> 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 <int> 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 <int> E..V....... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
 -surfaces <int> E..V....... Number of concurrent surfaces (from 0 to 64) (default 0)
 -cbr <boolean> E..V....... Use cbr encoding mode (default false)
 -2pass <boolean> E..V....... Use 2pass encoding mode (default auto)
 -gpu <int> 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 <int> E..V....... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
 -no-scenecut <boolean> E..V....... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
 -forced-idr <boolean> E..V....... If forcing keyframes, force them as IDR frames. (default false)
 -b_adapt <boolean> E..V....... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
 -spatial-aq <boolean> E..V....... set to 1 to enable Spatial AQ (default false)
 -spatial_aq <boolean> E..V....... set to 1 to enable Spatial AQ (default false)
 -temporal-aq <boolean> E..V....... set to 1 to enable Temporal AQ (default false)
 -temporal_aq <boolean> E..V....... set to 1 to enable Temporal AQ (default false)
 -zerolatency <boolean> E..V....... Set 1 to indicate zero latency operation (no reordering delay) (default false)
 -nonref_p <boolean> E..V....... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
 -strict_gop <boolean> E..V....... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
 -aq-strength <int> 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 <float> 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 <boolean> E..V....... Use access unit delimiters (default false)
 -bluray-compat <boolean> E..V....... Bluray compatibility workarounds (default false)
 -init_qpP <int> E..V....... Initial QP value for P frame (from -1 to 51) (default -1)
 -init_qpB <int> E..V....... Initial QP value for B frame (from -1 to 51) (default -1)
 -init_qpI <int> E..V....... Initial QP value for I frame (from -1 to 51) (default -1)
 -qp <int> E..V....... Constant quantization parameter rate control method (from -1 to 51) (default -1)
 -weighted_pred <int> E..V....... Set 1 to enable weighted prediction (from 0 to 1) (default 0)
 -coder <int> 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 <int> 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 <boolean> E..V....... Use A53 Closed Captions (if available) (default true)
 -dpb_size <int> E..V....... Specifies the DPB size used for encoding (0 means automatic) (from 0 to INT_MAX) (default 0)
 -multipass <int> 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 <int> 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)
</int></int></int></boolean></int></int></int></int></int></int></int></boolean></boolean></float></int></boolean></boolean></boolean></boolean></boolean></boolean></boolean></boolean></boolean></boolean></int></int></boolean></boolean></int></int></int></int></int></int></int>