
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 (85)
-
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 ;
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
Dépôt de média et thèmes par FTP
31 mai 2013, parL’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)
Sur d’autres sites (11643)
-
Flutter FFMPEG : Error setting profile baseline
9 avril 2021, par Raj DhakadFlutter-ffmpeg unable to set profile parameter. (I need to use profile so the rendered video can be played on WhatsApp).


I am converting.bmp images into a mp4 video. Other I have tested other praramets and the work great it's only -profile:v which seems to have some problem.


Everything works fine unless I use
-profile:v baseline
.

void _runFFmpeg() async {
 var dir = await getApplicationDocumentsDirectory();
 var output = await getExternalStorageDirectory();
 String videoSize = '${ImageWidth}x$ImageSize';
 print("${ImageWidth}x$ImageSize");
 var arguments = [
 "-y", // replace output file if it already exists
 "-framerate", "30", // framrate
 "-video_size", videoSize,
 "-pixel_format", "yuv420p",
 "-i", "${output.path}/frame_%d.bmp", 
 "-profile:v", "baseline",
 "-level", "3.0",
 "${output.path}/test.mp4"
 ];
 
 _flutterFFmpeg
 .executeWithArguments(arguments)
 .then((rc) => print("FFmpeg process exited with rc $rc"));
 

 print("Done Rendering");
 }



Logs


D/flutter-ffmpeg(26672): Running FFmpeg with arguments: [-y, -framerate, 30, -video_size, 720x600, -pixel_format, yuv420p, -i, /storage/emulated/0/Android/data/com.example.test/files/frame_%d.bmp, -profile:v, baseline, -level, 3.0, /storage/emulated/0/Android/data/com.example.test/files/test.mp4].
I/mobile-ffmpeg(26672): ffmpeg version v4.4-dev-416
I/mobile-ffmpeg(26672): Copyright (c) 2000-2020 the FFmpeg developers
I/mobile-ffmpeg(26672):
I/mobile-ffmpeg(26672): built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
I/mobile-ffmpeg(26672): configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --target-os=android --enable-neon --enable-asm --enable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libx264 --enable-gpl --enable-libxvid --enable-gpl --enable-libx265 --enable-gpl --enable-libvidstab --enable-gpl --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
I/mobile-ffmpeg(26672): libavutil 56. 55.100 / 56. 55.100
I/mobile-ffmpeg(26672): libavcodec 58. 96.100 / 58. 96.100
I/mobile-ffmpeg(26672): libavformat 58. 48.100 / 58. 48.100
I/mobile-ffmpeg(26672): libavdevice 58. 11.101 / 58. 11.101
I/mobile-ffmpeg(26672): libavfilter 7. 87.100 / 7. 87.100
I/mobile-ffmpeg(26672): libswscale 5. 8.100 / 5. 8.100
I/mobile-ffmpeg(26672): libswresample 3. 8.100 / 3. 8.100
I/mobile-ffmpeg(26672): Input #0, image2, from '/storage/emulated/0/Android/data/com.example.test/files/frame_%d.bmp':
I/mobile-ffmpeg(26672): Duration:
I/mobile-ffmpeg(26672): 00:00:06.03
I/mobile-ffmpeg(26672): , start:
I/mobile-ffmpeg(26672): 0.000000
I/mobile-ffmpeg(26672): , bitrate:
I/mobile-ffmpeg(26672): N/A
I/mobile-ffmpeg(26672):
I/mobile-ffmpeg(26672): Stream #0:0
I/mobile-ffmpeg(26672): : Video: bmp, yuv420p, 720x600
I/mobile-ffmpeg(26672): ,
I/mobile-ffmpeg(26672): 30 fps,
I/mobile-ffmpeg(26672): 30 tbr,
I/mobile-ffmpeg(26672): 30 tbn,
I/mobile-ffmpeg(26672): 30 tbc
I/mobile-ffmpeg(26672):
I/mobile-ffmpeg(26672): Stream mapping:
I/mobile-ffmpeg(26672): Stream #0:0 -> #0:0
I/mobile-ffmpeg(26672): (bmp (native) -> h264 (libx264))
I/mobile-ffmpeg(26672):
I/mobile-ffmpeg(26672): Press [q] to stop, [?] for help
W/mobile-ffmpeg(26672): [graph 0 input from stream 0:0 @ 0x7280948480] sws_param option is deprecated and ignored
E/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] Error setting profile baseline.
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] Possible profiles:
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] baseline
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] main
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] high
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] high10
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] high422
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100] high444
I/mobile-ffmpeg(26672): [libx264 @ 0x7291ba8100]
E/mobile-ffmpeg(26672): 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
I/mobile-ffmpeg(26672): Conversion failed!
D/flutter-ffmpeg(26672): FFmpeg exited with rc: 1
E/UIFirst (26672): failed to open /proc/26672/stuck_info, No such file or directory
I/chatty (26672): uid=12724(com.example.test) identical 2 lines
3
E/UIFirst (26672): failed to open /proc/26672/stuck_info, No such file or directory
I/chatty (26672): uid=12724(com.example.test) identical 1 line
E/UIFirst (26672): failed to open /proc/26672/stuck_info, No such file or directory



Flutter doctor -v


[√] Flutter (Channel stable, 2.0.1, on Microsoft Windows [Version 10.0.18362.836], locale en-US)
 • Flutter version 2.0.1 at C:\Users\Dell\flutter
 • Framework revision c5a4b4029c (5 weeks ago), 2021-03-04 09:47:48 -0800
 • Engine revision 40441def69
 • Dart version 2.12.0
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
 • Android SDK at C:\Users\Dell\AppData\Local\Android\sdk
 • Platform android-30, build-tools 29.0.3
 • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
 • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
 • All Android licenses accepted.
[√] Chrome - develop for the web
 • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[√] Android Studio (version 3.6)
 • Android Studio at C:\Program Files\Android\Android Studio
 • Flutter plugin version 45.1.1
 • Dart plugin version 192.7761
 • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
[√] VS Code (version 1.55.0)
 • VS Code at C:\Users\Dell\AppData\Local\Programs\Microsoft VS Code
 • Flutter extension version 3.21.0
[√] Connected device (2 available)
 • RMX1801 (mobile) • 8843cc23 • android-arm64 • Android 10 (API 29)
 • Chrome (web) • chrome • web-javascript • Google Chrome 89.0.4389.114
• No issues found!



I also have tried changing package to min-gpl, https-gpl and video but no change.


-
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...


-
Decrypting fragmented mpeg-dash using ffmpeg
6 octobre 2022, par Sayem Prodhan AnantaI have an mpeg-dash which I want to decrypt. I have the CENC decryption key. But I am unable to get it working. The dash uses segment template. Here is the dash


<?xml version="1.0" ?>
<mpd mediapresentationduration="PT1H55M53.987S" minbuffertime="PT6.00S" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011">
 
 <period>
 
 <adaptationset maxheight="720" maxwidth="1280" mimetype="video/mp4" segmentalignment="true" startwithsap="1">
 <accessibility schemeiduri="urn:scte:dash:cc:cea-608:2015" value="eng"></accessibility>
 <viewpoint schemeiduri="urn:mpeg:dash:role:2011" value="vp2"></viewpoint>
 
 <contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>
 
 <contentprotection schemeiduri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
 pAIAAAEAAQCaAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABoAFcAMwBQAEsAeABPAEkAYwB1AGsAVwBWAHgASwBaAHgAMgA3AEMAZwA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBBAGQARgAvAFEAcwBzAHEATQBhAEEAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcAByAC4AcwBlAHIAdgBpAGMAZQAuAGUAeABwAHIAZQBzAHMAcABsAGEAeQAuAGMAbwBtAC8AcABsAGEAeQByAGUAYQBkAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==
 </contentprotection>
 
 <contentprotection schemeiduri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
 AAAAQ3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACMIARIQPLcV8k6syyGkWVxKZx27ChoKaW50ZXJ0cnVzdCIBKg==
 </contentprotection>
 <segmenttemplate duration="6000" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4s" startnumber="1" timescale="1000"></segmenttemplate>
 <representation bandwidth="634478" codecs="avc1.4D401F" framerate="2997/100" height="288" scantype="progressive" width="512"></representation>
 <representation bandwidth="789637" codecs="avc1.4D401F" framerate="2997/100" height="360" scantype="progressive" width="640"></representation>
 <representation bandwidth="1562569" codecs="avc1.4D401F" framerate="2997/100" height="432" scantype="progressive" width="768"></representation>
 <representation bandwidth="2124583" codecs="avc1.4D401F" framerate="2997/100" height="720" scantype="progressive" width="1280"></representation>
 </adaptationset>
 
 <adaptationset lang="en" mimetype="audio/mp4" segmentalignment="true" startwithsap="1">
 
 <contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>
 
 <contentprotection schemeiduri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95">
 pAIAAAEAAQCaAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOABoAFcAMwBQAEsAeABPAEkAYwB1AGsAVwBWAHgASwBaAHgAMgA3AEMAZwA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBBAGQARgAvAFEAcwBzAHEATQBhAEEAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcAByAC4AcwBlAHIAdgBpAGMAZQAuAGUAeABwAHIAZQBzAHMAcABsAGEAeQAuAGMAbwBtAC8AcABsAGEAeQByAGUAYQBkAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==
 </contentprotection>
 
 <contentprotection schemeiduri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
 AAAAQ3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAACMIARIQPLcV8k6syyGkWVxKZx27ChoKaW50ZXJ0cnVzdCIBKg==
 </contentprotection>
 <segmenttemplate duration="6000" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4s" startnumber="1" timescale="1000"></segmenttemplate>
 <representation audiosamplingrate="48000" bandwidth="136225" codecs="mp4a.40.2">
 <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
 </representation>
 </adaptationset>
 </period>
</mpd>



I have produced an mp4 file by combining all the segments like this


init.mp4+seg-1.m4s+seg-2.m4s+....+seg-1159.m4s



But I end up with following error


ffmpeg version N-99631-g9018257751-anan5a-2020-10-19 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 8 (Debian 8.3.0-6)
 configuration: --extra-version=anan5a-2020-10-19 --enable-gpl --enable-version3 --disable-shared --enable-static --enable-small --enable-avisynth --enable-chromaprint --enable-frei0r --enable-gmp --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-librtmp --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-openal --enable-opencl --enable-opengl --enable-libdrm --enable-nonfree --enable-libfdk-aac --enable-libbluray --enable-libzimg --enable-libsvtav1
 libavutil 56. 60.100 / 56. 60.100
 libavcodec 58.111.101 / 58.111.101
 libavformat 58. 62.100 / 58. 62.100
 libavdevice 58. 11.102 / 58. 11.102
 libavfilter 7. 87.100 / 7. 87.100
 libswscale 5. 8.100 / 5. 8.100
 libswresample 3. 8.100 / 3. 8.100
 libpostproc 55. 8.100 / 55. 8.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x557789b49300] Incorrect number of samples in encryption info
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x557789b49300] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 512x288, 616 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../videos/enc.0a7bd4e9ec72b6e0-5549.mkv':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41iso5iso6
 Duration: 01:55:47.95, bitrate: 625 kb/s
 Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), none, 512x288, 616 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 11988 tbr, 11988 tbn, 23976 tbc (default)
 Metadata:
 handler_name : Bento4 Video Handler
 Side data:
 unknown side data type 24 (779 bytes)
Output #0, matroska, to '../videos/dec.0a7bd4e9ec72b6e0-5549.mkv':
 Metadata:
 major_brand : isom
 minor_version : 512
 compatible_brands: isomiso2avc1mp41iso5iso6
 encoder : Lavf58.62.100
 Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), none, 512x288 [SAR 1:1 DAR 16:9], q=2-31, 616 kb/s, 29.97 fps, 11988 tbr, 1k tbn, 11988 tbc (default)
 Metadata:
 handler_name : Bento4 Video Handler
 Side data:
 unknown side data type 24 (779 bytes)
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x557789b49300] Incorrect number of samples in encryption info
../videos/enc.0a7bd4e9ec72b6e0-5549.mkv: Invalid data found when processing input
frame= 0 fps=0.0 q=-1.0 Lsize= 1kB time=00:00:00.00 bitrate=N/A speed= 0x 
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown



How can I achieve the decryption without error ??