
Recherche avancée
Autres articles (52)
-
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
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 (15231)
-
ffmpeg convert video in a path with different name
16 mars 2019, par tour travelUsing
ffmpeg
inphp
withshell_exec
and want to convert video in a path that different with where script is run. php script is in/s/m/video.php
:<?php
if(isset($_GET["videoTools"])){
$user = $_GET["user"];
$uid = $_GET["uid"];
$vid = $_GET["vid"];
$uploaddir = '/seller/uploads/'.$user.'/'.$uid.'/';
echo shell_exec('ffmpeg -i '.$uploaddir.$vid.'-vid.mp4 -i /s/m/logo.png \
-filter_complex "hflip[flipped];[flipped]overlay=x=20:y=20" \
-s 480x320 -acodec aac -strict -2 -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 \
-strict -2 '.$uploaddir.$vid.'-vid-resized.mp4');
}
?>And this script called by
ajax
in/s/a/index.php
:$.ajax({
url: "/s/m/video.php?videoTools",
type: "GET",
data: {vid: json[0], uid: json[1], user: json[2]},
success: function(data){
// success
}
});And for example I want to convert video in this path
/s/uploads/91/768/2019-2-2_668-vid.mp4
Problems :
This not working, because look like
ffmpeg
not find video and logo in apath
/ Also look like ffmpeg not accepet video with-
or_
or etc.No related error log, but video not generated and script not working. Any idea ?
[Sat Mar 16 04:09:26.934114 2019] [php7:warn] [pid 25486] [client
85.133.232.199:34756] PHP Warning : Unknown : open_basedir restriction in effect. File(/var/cpanel/php/sessions/ea-php72) is not within the
allowed path(s) :
(/home/pedram/ :/tmp :/var/tmp :/usr/local/lib/php/ :/usr/local/php72/lib/php/)
in Unknown on line 0 -
ffmpeg x11grab to streamable format
2 juin 2021, par Jintor2 FFMPEG process


(1) generating a ffmpeg x11grab to a .mp4
(2) take the .mp4 and restream it simultaneously to multiple rtmp endpoints


ISSUE the generated file in (1) have this error "moov atom not found"


This is the command that generate (1) :


ffmpeg -re -y -f x11grab -draw_mouse 0 -framerate 30 
-video_size $RESOLUTION -i :$DISPLAY_NUM -c:a aac -c:v libx264 
-movflags +faststart -preset ultrafast -crf 28 -refs 4 -qmin 4 
-pix_fmt yuv420p -filter:v fps=30 file.mp4



in the (2) => when I try to ffmpeg -i file.mp4 output somewhere : I get "moov atom not found" so the (2) can't read or open (1).


What I'm I missing


in (1)
-movflags +faststart
doesn't seem to fix the issue

••••••• EDIT : more details on the context ••••••


I'm using openvidu : webrtc with kurento and coturn.


The record feature creates a .mp4 on the fly as the chat is going on.


To start the recording, there is an API call i can make to my server and it automatically stops when all users leaves the chatroom OR do an other api call to stop. see composed video in this link https://docs.openvidu.io/en/2.17.0/advanced-features/recording/


openvidu have also webhooks.


My problem is not how to stop ffmpeg, but getting FFMPEG to encode while the mp4 or other is being generated "on the fly".


There is 2 options :


OPTION 1 : individual => 1 .webm per camare => this .webm ffmpeg can restream as hls or RTMP => it's working.


OPTION 2 : ** but the issue is with "Composed" video => it's using ffmpeg to x11grab the session... but it's mp4 without moov ato, so ffmpeg don't do anything with this.


see the composed.sh script here
https://github.com/OpenVidu/openvidu/blob/master/openvidu-server/docker/openvidu-recording/scripts/composed.sh


***************** EDIT 3 *************


in the .sh this is the part that is creating the mp4


ffmpeg -y -f alsa -i pulse -f x11grab -draw_mouse 0
-framerate $FRAMERATE -video_size $RESOLUTION -i :$DISPLAY_NUM
-c:a aac -c:v libx264 -preset ultrafast
-crf 28 -refs 4 -qmin 4 -pix_fmt yuv420p
-filter:v fps=$FRAMERATE "/recordings/$VIDEO_ID/$VIDEO_NAME.$VIDEO_FORMAT"


How can I modify this to have better result example VP8 or VP9 with good quality .webm so that the ffpmeg second command(2) can encode it live...


**** EDIT 4 ********


I tried this it worked for 30 seconds and suddenly stopped


<./stop ffmpeg -y -f alsa -i pulse -f 
x11grab -draw_mouse 0 -framerate $FRAMERATE 
-video_size $RESOLUTION -i :$DISPLAY_NUM 
-c:v libx264 -b:v 1396k -b:a 128k -ar 44100 -maxrate 1369k 
-pix_fmt yuv420p -preset veryfast -tune zerolatency 
-c:a aac -ac 2 -profile:v main -flags -global_header 
-bufsize 969k -hls_time 1 -hls_list_size 0 -g 30 
-start_number 0 -streaming 1 -hls_playlist 1 
-lhls 1 -hls_playlist_type event -f hls "/recordings/$VIDEO_ID/$VIDEO_NAME".m3u8


N: [pulseaudio] main.c: Running in system mode, forcibly disabling SHM mode.
N: [pulseaudio] main.c: Running in system mode, forcibly disabling exit idle time.
Display in use -> :99
----------------------------------------
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
 configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
 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
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, alsa, from 'pulse':
 Duration: N/A, start: 1617150428.783763, bitrate: 1536 kb/s
 Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
[x11grab @ 0x55e88a4e8780] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #1, x11grab, from ':99':
 Duration: N/A, start: 1617150428.837799, bitrate: N/A
 Stream #1:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 30 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
 Stream #1:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
 Stream #0:0 -> #0:1 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 0x55e88a4f70c0] max bitrate less than average bitrate, assuming CBR
[libx264 @ 0x55e88a4f70c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
[libx264 @ 0x55e88a4f70c0] profile Main, level 4.0
[alsa @ 0x55e88a4c2e40] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619940.ts' for writing
Output #0, hls, to '/recordings/13391978436095-2/rec13390362561994.m3u8':
 Metadata:
 encoder : Lavf58.29.100
 Stream #0:0: Video: h264 (libx264), yuv420p(progressive), 1920x1080, q=-1--1, 1396 kb/s, 30 fps, 90k tbn, 30 tbc
 Metadata:
 encoder : Lavc58.54.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 1369000/0/1396000 buffer size: 969000 vbv_delay: -1
 Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s
 Metadata:
 encoder : Lavc58.54.100 aac
frame= 16 fps=0.0 q=21.0 size=N/A time=00:00:00.53 bitrate=N/A speed=1.06x 
frame= 31 fps= 31 q=16.0 size=N/A time=00:00:01.03 bitrate=N/A speed=1.02x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619941.ts' for writing
frame= 47 fps= 31 q=21.0 size=N/A time=00:00:01.56 bitrate=N/A speed=1.03x 
frame= 62 fps= 30 q=22.0 size=N/A time=00:00:02.06 bitrate=N/A speed=1.02x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619942.ts' for writing
frame= 77 fps= 30 q=24.0 size=N/A time=00:00:02.56 bitrate=N/A speed=1.01x 
frame= 92 fps= 30 q=22.0 size=N/A time=00:00:03.06 bitrate=N/A speed=0.999x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619943.ts' for writing
frame= 108 fps= 30 q=29.0 size=N/A time=00:00:03.60 bitrate=N/A speed= 1x 
frame= 124 fps= 30 q=21.0 size=N/A time=00:00:04.13 bitrate=N/A speed=1.01x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619944.ts' for writing
frame= 139 fps= 30 q=20.0 size=N/A time=00:00:04.63 bitrate=N/A speed=1.01x 
frame= 154 fps= 30 q=18.0 size=N/A time=00:00:05.13 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619945.ts' for writing
frame= 169 fps= 30 q=19.0 size=N/A time=00:00:05.63 bitrate=N/A speed= 1x 
frame= 185 fps= 30 q=19.0 size=N/A time=00:00:06.16 bitrate=N/A speed=1.01x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619946.ts' for writing
frame= 199 fps= 30 q=20.0 size=N/A time=00:00:06.63 bitrate=N/A speed= 1x 
frame= 215 fps= 30 q=19.0 size=N/A time=00:00:07.16 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619947.ts' for writing
frame= 230 fps= 30 q=19.0 size=N/A time=00:00:07.66 bitrate=N/A speed= 1x 
frame= 242 fps= 30 q=18.0 size=N/A time=00:00:08.06 bitrate=N/A speed=0.99x 
frame= 254 fps= 29 q=17.0 size=N/A time=00:00:08.46 bitrate=N/A speed=0.979x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619948.ts' for writing
frame= 276 fps= 30 q=17.0 size=N/A time=00:00:09.20 bitrate=N/A speed=1.01x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec133903625619949.ts' for writing
frame= 290 fps= 30 q=21.0 size=N/A time=00:00:09.66 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199410.ts' for writing
frame= 306 fps= 30 q=31.0 size=N/A time=00:00:10.20 bitrate=N/A speed= 1x 
frame= 322 fps= 30 q=21.0 size=N/A time=00:00:10.73 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199411.ts' for writing
frame= 337 fps= 30 q=21.0 size=N/A time=00:00:11.23 bitrate=N/A speed= 1x 
frame= 352 fps= 30 q=19.0 size=N/A time=00:00:11.73 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199412.ts' for writing
frame= 367 fps= 30 q=19.0 size=N/A time=00:00:12.23 bitrate=N/A speed= 1x 
frame= 382 fps= 30 q=18.0 size=N/A time=00:00:12.73 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199413.ts' for writing
frame= 397 fps= 30 q=18.0 size=N/A time=00:00:13.23 bitrate=N/A speed= 1x 
frame= 412 fps= 30 q=18.0 size=N/A time=00:00:13.73 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199414.ts' for writing
frame= 428 fps= 30 q=18.0 size=N/A time=00:00:14.26 bitrate=N/A speed= 1x 
frame= 443 fps= 30 q=17.0 size=N/A time=00:00:14.76 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199415.ts' for writing
frame= 458 fps= 30 q=18.0 size=N/A time=00:00:15.26 bitrate=N/A speed= 1x 
frame= 474 fps= 30 q=17.0 size=N/A time=00:00:15.80 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199416.ts' for writing
frame= 489 fps= 30 q=18.0 size=N/A time=00:00:16.30 bitrate=N/A speed= 1x 
frame= 504 fps= 30 q=17.0 size=N/A time=00:00:16.80 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199417.ts' for writing
frame= 520 fps= 30 q=20.0 size=N/A time=00:00:17.33 bitrate=N/A speed= 1x 
frame= 535 fps= 30 q=18.0 size=N/A time=00:00:17.83 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199418.ts' for writing
frame= 551 fps= 30 q=20.0 size=N/A time=00:00:18.36 bitrate=N/A speed= 1x 
frame= 566 fps= 30 q=19.0 size=N/A time=00:00:18.86 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199419.ts' for writing
frame= 581 fps= 30 q=20.0 size=N/A time=00:00:19.36 bitrate=N/A speed= 1x 
frame= 596 fps= 30 q=19.0 size=N/A time=00:00:19.86 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199420.ts' for writing
frame= 612 fps= 30 q=21.0 size=N/A time=00:00:20.40 bitrate=N/A speed= 1x 
frame= 626 fps= 30 q=20.0 size=N/A time=00:00:20.86 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199421.ts' for writing
frame= 641 fps= 30 q=21.0 size=N/A time=00:00:21.37 bitrate=N/A speed= 1x 
frame= 657 fps= 30 q=35.0 size=N/A time=00:00:21.90 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199422.ts' for writing
frame= 672 fps= 30 q=33.0 size=N/A time=00:00:22.40 bitrate=N/A speed= 1x 
frame= 687 fps= 30 q=23.0 size=N/A time=00:00:22.90 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199423.ts' for writing
frame= 703 fps= 30 q=23.0 size=N/A time=00:00:23.43 bitrate=N/A speed= 1x 
frame= 718 fps= 30 q=25.0 size=N/A time=00:00:23.93 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199424.ts' for writing
frame= 733 fps= 30 q=27.0 size=N/A time=00:00:24.44 bitrate=N/A speed= 1x 
frame= 749 fps= 30 q=26.0 size=N/A time=00:00:24.96 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199425.ts' for writing
frame= 764 fps= 30 q=28.0 size=N/A time=00:00:25.46 bitrate=N/A speed= 1x 
frame= 780 fps= 30 q=27.0 size=N/A time=00:00:26.00 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199426.ts' for writing
frame= 795 fps= 30 q=27.0 size=N/A time=00:00:26.50 bitrate=N/A speed= 1x 
frame= 810 fps= 30 q=26.0 size=N/A time=00:00:27.00 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec1339036256199427.ts' for writing
frame= 825 fps= 30 q=29.0 size=N/A time=00:00:27.50 bitrate=N/A speed= 1x 
[hls @ 0x55e88a4f3040] Opening '/recordings/13391978436095-2/rec13390362561994.m3u8.tmp' for writing
frame= 840 fps= 30 q=30.0 Lsize=N/A time=00:00:28.01 bitrate=N/A speed= 1x 
video:4635kB audio:404kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x55e88a4f70c0] frame I:42 Avg QP:12.88 size: 28020
[libx264 @ 0x55e88a4f70c0] frame P:798 Avg QP:13.11 size: 4473
[libx264 @ 0x55e88a4f70c0] mb I I16..4: 88.4% 0.0% 11.6%
[libx264 @ 0x55e88a4f70c0] mb P I16..4: 6.6% 0.0% 0.4% P16..4: 6.6% 1.9% 0.6% 0.0% 0.0% skip:83.8%
[libx264 @ 0x55e88a4f70c0] coded y,uvDC,uvAC intra: 18.8% 20.1% 10.1% inter: 1.7% 2.4% 0.1%
[libx264 @ 0x55e88a4f70c0] i16 v,h,dc,p: 55% 30% 12% 4%
[libx264 @ 0x55e88a4f70c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 27% 31% 2% 3% 2% 2% 1% 2%
[libx264 @ 0x55e88a4f70c0] i8c dc,h,v,p: 77% 9% 12% 1%
[libx264 @ 0x55e88a4f70c0] Weighted P-Frames: Y:1.1% UV:0.1%
[libx264 @ 0x55e88a4f70c0] kb/s:1355.98
[aac @ 0x55e88a4f8440] Qavg: 40876.258
jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): Cannot iterate over null (null)
jq: error (at <stdin>:1): null (null) cannot be parsed as a number
jq: error (at <stdin>:1): null (null) cannot be parsed as a number
jq: error: syntax error, unexpected '|' (Unix shell quoting issues?) at , line 1:
.hasAudio=false | .hasVideo=false | .duration= | .size= | .status="failed" 
jq: 1 compile error
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
 configuration: --prefix=/usr --extra-version=1ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
 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
Invalid duration specification for ss: -i
</stdin></stdin></stdin></stdin>


***** Edit 5 **********


no mather what format I choose, it stops after 20 to 30 secs.
the same line with .webm .mov .264 when it's not .mp4 ffmpeg seems to drop


-
Open VideoStream using OpenCV 4.5.1 works on Windows but fails on Docker python:3.9.2-slim-buster for specific IP cam
18 mai 2021, par Qua285I have 2 ip cameras - one of Hikvision and another of Provision ISR. Both use Onvif and work on VLC.
I've written a simple python script to record images every 5 sec from their video stream.
On Windows 10, using VSCode they both work as expected. Once deployed to a Docker container, my script works as expected with the Hikvision but fails with the Provision ISR - it doesn't open the stream.


Running
python -c "import cv2; print(cv2.getBuildInformation())"
on windows (venv 3.9.2) and on docker machine bring slightly different results but it's beyond my understanding to take something out of it...
Here is the Windows one :

General configuration for OpenCV 4.5.1 =====================================
 Version control: 4.5.1

 Platform:
 Timestamp: 2021-01-02T14:30:58Z
 Host: Windows 6.3.9600 AMD64
 CMake: 3.18.4
 CMake generator: Visual Studio 14 2015 Win64
 CMake build tool: C:/Program Files (x86)/MSBuild/14.0/bin/MSBuild.exe
 MSVC: 1900

 CPU/HW features:
 Baseline: SSE SSE2 SSE3
 requested: SSE3
 Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2
 requested: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
 SSE4_1 (15 files): + SSSE3 SSE4_1
 SSE4_2 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2
 FP16 (0 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
 AVX (4 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
 AVX2 (29 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2

 C/C++:
 Built as dynamic libs?: NO
 C++ standard: 11
 C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe (ver 19.0.24241.7)
 C++ flags (Release): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 
/MP /MT /O2 /Ob2 /DNDEBUG
 C++ flags (Debug): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 
/MP /MTd /Zi /Ob0 /Od /RTC1
 C Compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
 C flags (Release): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /MP /MT /O2 /Ob2 /DNDEBUG
 C flags (Debug): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /MP /MTd /Zi /Ob0 /Od /RTC1
 Linker flags (Release): /machine:x64 /NODEFAULTLIB:atlthunk.lib /INCREMENTAL:NO /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:libcpmtd.lib /NODEFAULTLIB:msvcrtd.lib
 Linker flags (Debug): /machine:x64 /NODEFAULTLIB:atlthunk.lib /debug /INCREMENTAL /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcpmt.lib /NODEFAULTLIB:msvcrt.lib
 ccache: NO
 Precompiled headers: YES
 Extra dependencies: ade wsock32 comctl32 gdi32 ole32 setupapi ws2_32
 3rdparty dependencies: ittnotify libprotobuf zlib libjpeg-turbo libwebp libpng libtiff libopenjp2 IlmImf quirc ippiw ippicv

 OpenCV modules:
 To be built: calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python3 stitching video videoio
 Disabled: world
 Disabled by dependency: -
 Unavailable: java python2 ts
 Applications: -
 Documentation: NO
 Non-free algorithms: NO

 Windows RT support: NO

 GUI:
 Win32 UI: YES
 VTK support: NO

 Media I/O:
 ZLib: build (ver 1.2.11)
 JPEG: build-libjpeg-turbo (ver 2.0.6-62)
 WEBP: build (ver encoder: 0x020f)
 PNG: build (ver 1.6.37)
 TIFF: build (ver 42 - 4.0.10)
 JPEG 2000: build (ver 2.3.1)
 OpenEXR: build (ver 2.3.0)
 HDR: YES
 SUNRASTER: YES
 PXM: YES
 PFM: YES

 Video I/O:
 DC1394: NO
 FFMPEG: YES (prebuilt binaries)
 avcodec: YES (58.91.100)
 avformat: YES (58.45.100)
 avutil: YES (56.51.100)
 swscale: YES (5.7.100)
 avresample: YES (4.0.0)
 GStreamer: NO
 DirectShow: YES
 Media Foundation: YES
 DXVA: NO

 Parallel framework: Concurrency

 Trace: YES (with Intel ITT)

 Other third-party libraries:
 Intel IPP: 2020.0.0 Gold [2020.0.0]
 at: C:/Users/appveyor/AppData/Local/Temp/1/pip-req-build-wvn_it83/_skbuild/win-amd64-3.9/cmake-build/3rdparty/ippicv/ippicv_win/icv
 Intel IPP IW: sources (2020.0.0)
 at: C:/Users/appveyor/AppData/Local/Temp/1/pip-req-build-wvn_it83/_skbuild/win-amd64-3.9/cmake-build/3rdparty/ippicv/ippicv_win/iw
 Lapack: NO
 Eigen: NO
 Custom HAL: NO
 Protobuf: build (3.5.1)

 OpenCL: YES (NVD3D11)
 Include path: C:/Users/appveyor/AppData/Local/Temp/1/pip-req-build-wvn_it83/opencv/3rdparty/include/opencl/1.2
 Link libraries: Dynamic load

 Python 3:
 Interpreter: C:/Python39-x64/python.exe (ver 3.9)
 Libraries: C:/Python39-x64/libs/python39.lib (ver 3.9.0)
 numpy: C:/Users/appveyor/AppData/Local/Temp/1/pip-build-env-sk7r7w_5/overlay/Lib/site-packages/numpy/core/include (ver 1.19.3)
 install path: python

 Python (for build): C:/Python27-x64/python.exe

 Java:
 ant: NO
 JNI: C:/Program Files/Java/jdk1.8.0/include C:/Program Files/Java/jdk1.8.0/include/win32 C:/Program Files/Java/jdk1.8.0/include
 Java wrappers: NO
 Java tests: NO

 Install to: C:/Users/appveyor/AppData/Local/Temp/1/pip-req-build-wvn_it83/_skbuild/win-amd64-3.9/cmake-install
-----------------------------------------------------------------



this is the Docker one (python:3.9.2-slim-buster) :


General configuration for OpenCV 4.5.1 =====================================
 Version control: 4.5.1-dirty

 Platform:
 Timestamp: 2021-01-02T13:04:10Z
 Host: Linux 4.15.0-1077-gcp x86_64
 CMake: 3.18.4
 CMake generator: Unix Makefiles
 CMake build tool: /bin/gmake
 Configuration: Release

 CPU/HW features:
 Baseline: SSE SSE2 SSE3
 requested: SSE3
 Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2 AVX512_SKX
 requested: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
 SSE4_1 (15 files): + SSSE3 SSE4_1
 SSE4_2 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2
 FP16 (0 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
 AVX (4 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
 AVX2 (29 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2
 AVX512_SKX (4 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 AVX_512F AVX512_COMMON AVX512_SKX

 C/C++:
 Built as dynamic libs?: NO
 C++ standard: 11
 C++ Compiler: /usr/lib/ccache/compilers/c++ (ver 9.3.1)
 C++ flags (Release): -Wl,-strip-all -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG
 C++ flags (Debug): -Wl,-strip-all -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG
 C Compiler: /usr/lib/ccache/compilers/cc
 C flags (Release): -Wl,-strip-all -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -O3 -DNDEBUG -DNDEBUG
 C flags (Debug): -Wl,-strip-all -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG
 Linker flags (Release): -Wl,--exclude-libs,libippicv.a -Wl,--exclude-libs,libippiw.a -L/root/ffmpeg_build/lib -Wl,--gc-sections -Wl,--as-needed
 Linker flags (Debug): -Wl,--exclude-libs,libippicv.a -Wl,--exclude-libs,libippiw.a -L/root/ffmpeg_build/lib -Wl,--gc-sections -Wl,--as-needed
 ccache: YES
 Precompiled headers: NO
 Extra dependencies: ade Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Test Qt5::Concurrent /lib64/libpng.so /lib64/libz.so dl m pthread rt
 3rdparty dependencies: ittnotify libprotobuf libjpeg-turbo libwebp libtiff libopenjp2 IlmImf quirc ippiw ippicv

 OpenCV modules:
 To be built: calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python3 stitching video videoio
 Disabled: world
 Disabled by dependency: -
 Unavailable: java python2 ts
 Applications: -
 Documentation: NO
 Non-free algorithms: NO

 GUI:
 QT: YES (ver 5.15.0)
 QT OpenGL support: NO
 GTK+: NO
 VTK support: NO

 Media I/O:
 ZLib: /lib64/libz.so (ver 1.2.7)
 JPEG: libjpeg-turbo (ver 2.0.6-62)
 WEBP: build (ver encoder: 0x020f)
 PNG: /lib64/libpng.so (ver 1.5.13)
 TIFF: build (ver 42 - 4.0.10)
 JPEG 2000: build (ver 2.3.1)
 OpenEXR: build (ver 2.3.0)
 HDR: YES
 SUNRASTER: YES
 PXM: YES
 PFM: YES

 Video I/O:
 DC1394: NO
 FFMPEG: YES
 avcodec: YES (58.109.100)
 avformat: YES (58.61.100)
 avutil: YES (56.60.100)
 swscale: YES (5.8.100)
 avresample: NO
 GStreamer: NO
 v4l/v4l2: YES (linux/videodev2.h)

 Parallel framework: pthreads

 Trace: YES (with Intel ITT)

 Other third-party libraries:
 Intel IPP: 2020.0.0 Gold [2020.0.0]
 at: /tmp/pip-req-build-ddpkm6fn/_skbuild/linux-x86_64-3.9/cmake-build/3rdparty/ippicv/ippicv_lnx/icv
 Intel IPP IW: sources (2020.0.0)
 at: /tmp/pip-req-build-ddpkm6fn/_skbuild/linux-x86_64-3.9/cmake-build/3rdparty/ippicv/ippicv_lnx/iw
 Lapack: NO
 Eigen: NO
 Custom HAL: NO
 Protobuf: build (3.5.1)

 OpenCL: YES (no extra features)
 Include path: /tmp/pip-req-build-ddpkm6fn/opencv/3rdparty/include/opencl/1.2
 Link libraries: Dynamic load

 Python 3:
 Interpreter: /opt/python/cp39-cp39/bin/python (ver 3.9)
 Libraries: libpython3.9.a (ver 3.9.0)
 numpy: /tmp/pip-build-env-jqrfyj0w/overlay/lib/python3.9/site-packages/numpy/core/include (ver 1.19.3)
 install path: python

 Python (for build): /bin/python2.7

 Java:
 ant: NO
 JNI: NO
 Java wrappers: NO
 Java tests: NO

 Install to: /tmp/pip-req-build-ddpkm6fn/_skbuild/linux-x86_64-3.9/cmake-install
-----------------------------------------------------------------



If relevant, the docker is installed on an Intel NUC with Ubuntu Desktop 20.04


If relevant, this is the dockerfile I've used to build the image :


FROM python:3.9.2-slim-buster as builder

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1
# Without this setting, Python never prints anything out.
ENV PYTHONUNBUFFERED=1

RUN pip install --upgrade pip
COPY ./Cam/requirements.txt .
RUN pip install -r requirements.txt
RUN apt-get update
RUN apt-get install ffmpeg libsm6 libxext6 -y

WORKDIR /app

FROM builder
COPY ./Cam .
CMD ["python", "camStreamer.py"]



and last, this is the script code (simplified) :


import os, logging, threading
from os.path import join
import sys, inspect, datetime, time
from pathlib import Path
import cv2
import imutils
from imutils.video import VideoStream

def StartRecording(showVideoWindow, interval, imagePath):
 key = None
 cam = VideoStream(os.getenv("CAM_RTSP")).start()
 counter = 0
 try:
 while True:
 ## 2 min retry to connect if frame is None
 if counter > 60/interval*2: break

 ts = time.time()
 ## Wait for [interval] seconds
 while ts + interval > time.time():
 continue
 print(f"Counter: {counter}, ts: {str(ts)}")

 frame = cam.read()
 if frame is None:
 counter += 1
 continue
 counter = 0

 print("frame is valid")
 if showVideoWindow:
 frame = imutils.resize(frame, width=1200)
 cv2.imshow('VIDEO', frame)

 imageName = f"{datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%dT%H_%M_%S')}.jpg"
 cv2.imwrite(join(imagePath, imageName), frame)
 print("saved image to disk")

 key = cv2.waitKey(1) & 0xFF
 if key == ord('q') or key == ord('r'):
 break

 except Exception as e:
 exc_tb = sys.exc_info()[2]
 extra = ""
 print(f"{inspect.stack()[0][3]}: {e} (lineno: {exc_tb.tb_lineno}) {extra}")
 finally:
 if showVideoWindow: cv2.destroyAllWindows()
 cam.stop()
 return key


while True:
 log.warning(f"Starting {Name}")
 key = StartRecording(
 showVideoWindow=(Env.startswith("development") and os.getenv("SHOW_VIDEO") == "True"),
 interval=int(os.getenv("SAVE_IMAGE_INTERVAL")),
 imagePath=os.getenv('CAPTURE_FOLDER')
 )
 if key == ord('q'):
 break



I apologize for the very long post. Hopefully someone can put me on the right direction...