
Recherche avancée
Autres articles (31)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (3861)
-
FFMPEG - Why can't i record a video for more than 10 seconds ?
12 février 2020, par gabrielI’m developing a screen recorder for windows with python but for some reason i can’t record the video for more than 10 seconds.However i can record the audio for more than 10 seconds.
Also i’m using :FFMPEG - to record the video with mp4 extension
PYAUDIO - to record the sound
TKINTER - to design the GUI
Since the problem is with the video recording i will leave the code that i used with ffmpeg :
"""
cmdGen.py generates ffmpeg commands to record your screen
"""
import os
class cmdGen:
def __init__(self):
self.fps = 60
self.source = "desktop"
self.encoder = 'mpeg4'
self.hwaccel = None
self.drawMouse = 1
self.enableWebcam = False
self.audList = 0
def config(self,
fps=None,source=None,encoder=None,
hwaccel='unchanged',drawMouse=None,
webcam=None,audList=None):
if fps: self.fps = fps
if source: self.source = source
if encoder: self.encoder = encoder
if hwaccel != 'unchanged': self.hwaccel = hwaccel
if drawMouse: self.drawMouse = 0 if not self.drawMouse else 1
if webcam: self.enableWebcam = bool(webcam)
if audList: self.audList = audList
def setSource(self,isWindow,windowName=""):
if not isWindow:
self.source = "desktop"
else:
self.source = "title="+windowName
def setFps(self,fps):
self.fps = fps
def setEncode(self,encoder):
self.encoder = encoder
def getCmd(self,filename):
print("ACK")
finalCmd = ["ffmpeg.exe","-f","gdigrab"]
finalCmd.extend(['-i',self.source])
finalCmd.extend(['-framerate',str(self.fps)])
finalCmd.extend(['-c:v',self.encoder])
if self.encoder == 'mpeg4':
finalCmd.extend(['-q:v','7'])
if self.hwaccel:
finalCmd.extend(['-hwaccel',self.hwaccel])
finalCmd.extend(['-draw_mouse',str(self.drawMouse)])
finalCmd.extend(["-y", filename])
print(finalCmd)
return finalCmd
def getCvtCmd(self,filename):
# if self.rcchecked.get():
# self.mergeProcess = subprocess.Popen(args= ["ffmpeg","-i",'tmp/tmp.mkv','-i','tmp/tmp.wav','-i','tmp/webcamtmp.mkv','-filter_complex','[2:v] scale=640:-1 [inner]; [0:0][inner] overlay=0:0 [out]',"-shortest",'-map','[out]','-y',"ScreenCaptures/"+self.filename])
# else:
# self.mergeProcess = subprocess.Popen(args= ["ffmpeg","-i",'tmp/tmp.mkv','-i','tmp/tmp.wav',"-shortest",'-y',"ScreenCaptures/"+self.filename], startupinfo=startupinfo)
print("ACK")
finalCmd = ["ffmpeg.exe"]
finalCmd.extend(['-i','tmp/tmp.mkv'])
for i in range(len(self.audList)):
finalCmd.extend(['-i','tmp/tmp_'+str(i)+'.wav'])
if len(self.audList) > 0:
finalCmd.extend(['-filter_complex','amerge=inputs='+str(len(self.audList)),'-ac',str(len(self.audList))])
# finalCmd.extend(['-c:v',self.encoder])
if self.enableWebcam:
finalCmd.extend(['-i','tmp/webcamtmp.mkv','-filter_complex','[2:v] scale=640:-1 [inner]; [0:0][inner] '
'overlay=0:0 [out]','-map','[out]'])
#finalCmd.extend(['-shortest'])
finalCmd.extend(["-y", filename])
print(finalCmd)
return finalCmd
if __name__ == "__main__":
cg = cmdGen()
cg.setEncode("h264_nvenc")
cg.setFps(60)
cg.setSource(False)
print(cg.getCmd("tmp"))Thanks guys
Full log trying to record 1 minute :
C:\Users\FabianoFreitas\AppData\Local\Programs\Python\Python37\python.exe C:/Users/FabianoFreitas/Desktop/PowerShare-v2.0/screenRecorder.py
ACK
['ffmpeg.exe', '-f', 'gdigrab', '-i', 'desktop', '-framerate', '60', '-c:v', 'mpeg4', '-q:v', '7', '-draw_mouse', '1', '-y', 'tmp/tmp.mkv']
* recording
ACK
['ffmpeg.exe', '-i', 'tmp/tmp.mkv', '-i', 'tmp/tmp_0.wav', '-filter_complex', 'amerge=inputs=1', '-ac', '1', '-y', 'Videos/ScreenCapture24.mp4']
* done recording
ffmpeg version git-2020-02-05-e6891d1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9.2.1 (GCC) 20200122
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
libavutil 56. 39.100 / 56. 39.100
libavcodec 58. 67.101 / 58. 67.101
libavformat 58. 37.100 / 58. 37.100
libavdevice 58. 9.103 / 58. 9.103
libavfilter 7. 74.100 / 7. 74.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
Input #0, matroska,webm, from 'tmp/tmp.mkv':
Metadata:
ENCODER : Lavf58.37.100
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mpeg4 (Simple Profile), yuv420p, 2560x1080 [SAR 1:1 DAR 64:27], 29.97 fps, 29.97 tbr, 1k tbn, 30k tbc (default)
Metadata:
ENCODER : Lavc58.67.101 mpeg4
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, wav, from 'tmp/tmp_0.wav':
Duration: 00:01:09.08, bitrate: 1411 kb/s
Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
Stream mapping:
Stream #1:0 (pcm_s16le) -> amerge (graph 0)
amerge (graph 0) -> Stream #0:0 (aac)
Stream #0:0 -> #0:1 (mpeg4 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[Parsed_amerge_0 @ 00000218cb4c1640] No channel layout for input 1
[libx264 @ 00000218cb4acdc0] using SAR=1/1
[libx264 @ 00000218cb4acdc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 00000218cb4acdc0] profile High, level 5.0, 4:2:0, 8-bit
[libx264 @ 00000218cb4acdc0] 264 - core 159 - 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=12 lookahead_threads=2 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, mp4, to 'Videos/ScreenCapture24.mp4':
Metadata:
encoder : Lavf58.37.100
Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s
Metadata:
encoder : Lavc58.67.101 aac
Stream #0:1: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 2560x1080 [SAR 1:1 DAR 64:27], q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc (default)
Metadata:
encoder : Lavc58.67.101 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
[matroska,webm @ 00000218cb44af00] File ended prematurely
frame= 297 fps=113 q=-1.0 Lsize= 2325kB time=00:01:09.07 bitrate= 275.8kbits/s dup=22 drop=0 speed=26.2x
video:1713kB audio:591kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.900237%
[aac @ 00000218cb4ab780] Qavg: 24995.135
[libx264 @ 00000218cb4acdc0] frame I:4 Avg QP:15.13 size:199596
[libx264 @ 00000218cb4acdc0] frame P:85 Avg QP:21.15 size: 9466
[libx264 @ 00000218cb4acdc0] frame B:208 Avg QP:24.93 size: 725
[libx264 @ 00000218cb4acdc0] consecutive B-frames: 5.1% 2.7% 6.1% 86.2%
[libx264 @ 00000218cb4acdc0] mb I I16..4: 48.0% 45.3% 6.7%
[libx264 @ 00000218cb4acdc0] mb P I16..4: 1.6% 1.9% 0.8% P16..4: 1.4% 0.4% 0.3% 0.0% 0.0% skip:93.7%
[libx264 @ 00000218cb4acdc0] mb B I16..4: 0.1% 0.1% 0.0% B16..8: 3.0% 0.1% 0.0% direct: 0.0% skip:96.6% L0:51.2% L1:48.3% BI: 0.6%
[libx264 @ 00000218cb4acdc0] 8x8 transform intra:44.4% inter:69.1%
[libx264 @ 00000218cb4acdc0] coded y,uvDC,uvAC intra: 23.8% 27.4% 19.5% inter: 0.2% 0.3% 0.1%
[libx264 @ 00000218cb4acdc0] i16 v,h,dc,p: 54% 45% 1% 0%
[libx264 @ 00000218cb4acdc0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 20% 41% 2% 2% 1% 2% 1% 5%
[libx264 @ 00000218cb4acdc0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 35% 17% 2% 3% 3% 4% 2% 4%
[libx264 @ 00000218cb4acdc0] i8c dc,h,v,p: 61% 25% 11% 2%
[libx264 @ 00000218cb4acdc0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 00000218cb4acdc0] ref P L0: 68.0% 6.3% 16.6% 9.1%
[libx264 @ 00000218cb4acdc0] ref B L0: 70.2% 23.7% 6.1%
[libx264 @ 00000218cb4acdc0] ref B L1: 91.1% 8.9%
[libx264 @ 00000218cb4acdc0] kb/s:1415.80 -
Q&A : An interview with Matomo founder, Matthieu Aubry
-
ffmpeg filter_complex concat never completes
10 juillet 2020, par seawolfI am trying to concatenate
mp4
files into a single file. I am attempting to use theconcat
filter directly for reasons independent from this question (so-i list.txt
is not a valid solution). All video files in question are between 4 and 20 minutes in length.

What I am executing :


% ffmpeg -i f01.mp4 -i f02.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4



This is my understanding of the form of this command from references such as FFmpeg Filters Documentation : concat and Concatenate Videos Together Using FFMPEG !.


What happens :


ffmpeg
gives a lot of output as it checks the metadata for each stream and then begins processing. After a short duration (several seconds to a minute or so, seems to be prortional to the duration of the first video) I start seeing messages like this :

More than 1000 frames duplicated
More than 10000 frames duplicated 512kB time=00:00:00.12 bitrate=32771.0kbits/s dup=33365 drop=0 speed=0.00449x
More than 100000 frames duplicated 1280kB time=00:00:00.17 bitrate=61442.1kbits/s dup=66730 drop=0 speed=0.00272x



... and then the process never completes. If I leave my computer running for 24 hours,
ffmpeg
is still using max available CPU (200-300%). The output file is 48 bytes in length.

Note : the inputs are only a few minutes each, so individually re-encoding the inputs would take only a few minutes each.


Note : if I change the command to use
f01.mp4
for both source 0 and source 1, the command completes as expected in under 5 minutes :

% # example that works:
% # note, however, that this just repeats the same source twice
% ffmpeg -i f01.mp4 -i f01.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4



Full output :


Here is the complete output of a run in case it's helpful :


% ffmpeg -i f01.mp4 -i f02.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4
ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
 built with Apple clang version 11.0.3 (clang-1103.0.32.62)
 configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3_2 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libavresample 4. 0. 0 / 4. 0. 0
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'f01.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 creation_time : 2020-06-04T21:34:26.000000Z
 encoder : HandBrake 1.3.2 2020050300
 Duration: 00:04:14.66, start: 0.000000, bitrate: 525 kb/s
 Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 708x478 [SAR 8:9 DAR 944:717], 366 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc (default)
 Metadata:
 creation_time : 2020-06-04T21:34:26.000000Z
 handler_name : VideoHandler
 Stream #0:1(jpn): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 149 kb/s (default)
 Metadata:
 creation_time : 2020-06-04T21:34:26.000000Z
 handler_name : Stereo
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'f02.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 creation_time : 2020-06-04T21:38:15.000000Z
 encoder : HandBrake 1.3.2 2020050300
 Duration: 00:06:30.95, start: 0.000000, bitrate: 1328 kb/s
 Stream #1:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 708x478 [SAR 8:9 DAR 944:717], 1179 kb/s, 29.97 fps, 30 tbr, 90k tbn, 180k tbc (default)
 Metadata:
 creation_time : 2020-06-04T21:38:15.000000Z
 handler_name : VideoHandler
 Stream #1:1(jpn): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 140 kb/s (default)
 Metadata:
 creation_time : 2020-06-04T21:38:15.000000Z
 handler_name : Stereo
File 'output.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
 Stream #0:0 (h264) -> concat:in0:v0
 Stream #0:1 (aac) -> concat:in0:a0
 Stream #1:0 (h264) -> concat:in1:v0
 Stream #1:1 (aac) -> concat:in1:a0
 concat:out:v0 -> Stream #0:0 (libx264)
 concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[mp4 @ 0x7ff130014000] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[libx264 @ 0x7ff130021200] using SAR=8/9
[libx264 @ 0x7ff130021200] MB rate (1350000000) > level limit (16711680)
[libx264 @ 0x7ff130021200] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7ff130021200] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 0x7ff130021200] 264 - core 160 r3011 cde9a93 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - 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=6 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, mp4, to 'output.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 512
 compatible_brands: isomiso2avc1mp41
 encoder : Lavf58.45.100
 Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 708x478 [SAR 8:9 DAR 944:717], q=-1--1, 1000k tbn, 1000k tbc (default)
 Metadata:
 encoder : Lavc58.91.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
 Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
 Metadata:
 encoder : Lavc58.91.100 aac
More than 1000 frames duplicated
More than 10000 frames duplicated 512kB time=00:00:00.12 bitrate=32771.0kbits/s dup=33365 drop=0 speed=0.00449x
More than 100000 frames duplicated 1280kB time=00:00:00.17 bitrate=61442.1kbits/s dup=66730 drop=0 speed=0.00272x
frame=667333 fps=1079 q=33.0 size= 14848kB time=00:00:00.76 bitrate=158379.2kbits/s dup=667312 drop=0 speed=0.00124x