
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (48)
-
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 -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (7902)
-
How to stream webcam video over RTSP using ffmpeg on Windows 10 ? [closed]
15 mai 2024, par let me down slowlyI am trying to stream my laptop's webcam using RTSP protocol using
ffmpeg
. I am trying to simulate an actual IP Camera. I have already tried different tools already including usingVidGear
python package, andgstreamer
but could not get it working. Note : I am on Windows 10. I have tried this command :

ffmpeg -f dshow -s 320x240 -rtbufsize 2147.48M -r 30 -vcodec mjpeg -i video="HD Camera" -f rtsp -rtsp_transport tcp rtsp://localhost:8554/mystream



It turns on the webcam with but prints these logs to the console :


ffmpeg version 7.0-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
 built with gcc 13.2.0 (Rev5, 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-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --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-libcodec2 --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 59. 8.100 / 59. 8.100
 libavcodec 61. 3.100 / 61. 3.100
 libavformat 61. 1.100 / 61. 1.100
 libavdevice 61. 1.100 / 61. 1.100
 libavfilter 10. 1.100 / 10. 1.100
 libswscale 8. 1.100 / 8. 1.100
 libswresample 5. 1.100 / 5. 1.100
 libpostproc 58. 1.100 / 58. 1.100
[mjpeg @ 0000026201ae9fc0] unable to decode APP fields: Invalid data found when processing input
Input #0, dshow, from 'video=HD Camera':
 Duration: N/A, start: 1285415.793302, bitrate: N/A
 Stream #0:0: Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 320x240, 30 fps, 30 tbr, 10000k tbn
Stream mapping:
 Stream #0:0 -> #0:0 (mjpeg (native) -> mpeg4 (native))
Press [q] to stop, [?] for help
[mjpeg @ 0000026201afe9c0] unable to decode APP fields: Invalid data found when processing input
[swscaler @ 0000026201b5cc40] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 00000262068c57c0] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0000026201b5cc40] deprecated pixel format used, make sure you did set range correctly
 Last message repeated 1 times
[mjpeg @ 0000026201afe9c0] unable to decode APP fields: Invalid data found when processing input
 Last message repeated 8 times



I tried opening
rtsp://localhost:8554/mystream
but it showsVLC is unable to open the MRL 'rtsp://localhost:8554/mystream'. Check the log for details.


Killing the running process outputs these additional logs


[out#0/rtsp @ 0000026201aeaf80] Could not write header (incorrect codec parameters ?): Immediate exit requested
[vf#0:0 @ 0000026201af4100] Error sending frames to consumers: Immediate exit requested
[vf#0:0 @ 0000026201af4100] Task finished with error code: -1414092869 (Immediate exit requested)
[vf#0:0 @ 0000026201af4100] Terminating thread with return code -1414092869 (Immediate exit requested)
[out#0/rtsp @ 0000026201aeaf80] Nothing was written into output file, because at least one of its streams received no packets.
frame= 0 fps=0.0 q=0.0 Lsize= 0KiB time=N/A bitrate=N/A speed=N/A
Exiting normally, received signal 2.



Output of the command
ffmpeg -list_devices true -f dshow -i dummy
:

built with gcc 13.2.0 (Rev5, 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-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --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-libcodec2 --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 59. 8.100 / 59. 8.100
 libavcodec 61. 3.100 / 61. 3.100
 libavformat 61. 1.100 / 61. 1.100
 libavdevice 61. 1.100 / 61. 1.100
 libavfilter 10. 1.100 / 10. 1.100
 libswscale 8. 1.100 / 8. 1.100
 libswresample 5. 1.100 / 5. 1.100
 libpostproc 58. 1.100 / 58. 1.100
[dshow @ 00000140f18d4200] "HD Camera" (video)
[dshow @ 00000140f18d4200] Alternative name "@device_pnp_\\?\usb#vid_05c8&pid_03ea&mi_00#6&d0a8c55&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 00000140f18d4200] "Microphone (Realtek(R) Audio)" (audio)
[dshow @ 00000140f18d4200] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{06840D8D-1151-4D9C-B865-2FE01BFB9FD2}"
[in#0 @ 00000140f18ba640] Error opening input: Immediate exit requested
Error opening input file dummy.



Output of the command
ffmpeg -f dshow -list_options true -i video="HD Camera"
:

built with gcc 13.2.0 (Rev5, 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-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --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-libcodec2 --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 59. 8.100 / 59. 8.100
 libavcodec 61. 3.100 / 61. 3.100
 libavformat 61. 1.100 / 61. 1.100
 libavdevice 61. 1.100 / 61. 1.100
 libavfilter 10. 1.100 / 10. 1.100
 libswscale 8. 1.100 / 8. 1.100
 libswresample 5. 1.100 / 5. 1.100
 libpostproc 58. 1.100 / 58. 1.100
[dshow @ 000002670b4c12c0] DirectShow video device options (from video devices)
[dshow @ 000002670b4c12c0] Pin "Capture" (alternative pin name "Capture")
[dshow @ 000002670b4c12c0] vcodec=mjpeg min s=1280x720 fps=30 max s=1280x720 fps=30
[dshow @ 000002670b4c12c0] vcodec=mjpeg min s=640x480 fps=30 max s=640x480 fps=30
[dshow @ 000002670b4c12c0] vcodec=mjpeg min s=640x360 fps=30 max s=640x360 fps=30
[dshow @ 000002670b4c12c0] vcodec=mjpeg min s=352x288 fps=30 max s=352x288 fps=30
[dshow @ 000002670b4c12c0] vcodec=mjpeg min s=320x240 fps=30 max s=320x240 fps=30
[dshow @ 000002670b4c12c0] vcodec=mjpeg min s=176x144 fps=30 max s=176x144 fps=30
[dshow @ 000002670b4c12c0] pixel_format=yuyv422 min s=1280x720 fps=10 max s=1280x720 fps=10
[dshow @ 000002670b4c12c0] pixel_format=yuyv422 min s=640x480 fps=30 max s=640x480 fps=30
[dshow @ 000002670b4c12c0] pixel_format=yuyv422 min s=640x360 fps=30 max s=640x360 fps=30
[dshow @ 000002670b4c12c0] pixel_format=yuyv422 min s=352x288 fps=30 max s=352x288 fps=30
[dshow @ 000002670b4c12c0] pixel_format=yuyv422 min s=320x240 fps=30 max s=320x240 fps=30
[dshow @ 000002670b4c12c0] pixel_format=yuyv422 min s=176x144 fps=30 max s=176x144 fps=30
[in#0 @ 000002670b4aa200] Error opening input: Immediate exit requested
Error opening input file video=HD Camera.



Please help me solve the issue or suggest a better approach.


-
Creating buttons with Imagick
A fellow called kakapo asked me to create a button with Imagick. He had an image of the button and a Photoshop tutorial but unfortunately the tutorial was in Chinese. My Chinese is a bit rusty so it will take a little longer to create that specific button
The button in this example is created after this tutorial http://xeonfx.com/tutorials/easy-button-tutorial/ (yes, I googled “easy button tutorial”). The code and the button it creates are both very simple but the effect looks really nice.
Here we go with the code :
-
< ?php
-
-
/* Create a new Imagick object */
-
$im = new Imagick() ;
-
-
/* Create empty canvas */
-
$im->newImage( 200, 200, "white", "png" ) ;
-
-
/* Create the object used to draw */
-
$draw = new ImagickDraw() ;
-
-
/* Set the button color.
-
Changing this value changes the color of the button */
-
$draw->setFillColor( "#4096EE" ) ;
-
-
/* Create the outer circle */
-
$draw->circle( 50, 50, 70, 70 ) ;
-
-
/* Create the smaller circle on the button */
-
$draw->setFillColor( "white" ) ;
-
-
/* Semi-opaque fill */
-
$draw->setFillAlpha( 0.2 ) ;
-
-
/* Draw the circle */
-
$draw->circle( 50, 50, 68, 68 ) ;
-
-
/* Set the font */
-
$draw->setFont( "./test1.ttf" ) ;
-
-
/* This is the alpha value used to annotate */
-
$draw->setFillAlpha( 0.17 ) ;
-
-
/* Draw a curve on the button with 17% opaque fill */
-
$draw->bezier( array(
-
array( "x" => 10 , "y" => 25 ),
-
array( "x" => 39, "y" => 49 ),
-
array( "x" => 60, "y" => 55 ),
-
array( "x" => 75, "y" => 70 ),
-
array( "x" => 100, "y" => 70 ),
-
array( "x" => 100, "y" => 10 ),
-
) ) ;
-
-
/* Render all pending operations on the image */
-
$im->drawImage( $draw ) ;
-
-
/* Set fill to fully opaque */
-
$draw->setFillAlpha( 1 ) ;
-
-
/* Set the font size to 30 */
-
$draw->setFontSize( 30 ) ;
-
-
/* The text on the */
-
$draw->setFillColor( "white" ) ;
-
-
/* Annotate the text */
-
$im->annotateImage( $draw, 38, 55, 0, "go" ) ;
-
-
/* Trim extra area out of the image */
-
$im->trimImage( 0 ) ;
-
-
/* Output the image */
-
header( "Content-Type : image/png" ) ;
-
echo $im ;
-
-
?>
And here is a few buttons I created by changing the fill color value :
-
-
Padding thumbnail with color
I know, it’s been a while since I last blogged. This is because a lot of things are happening in my personal life. I recently relocated to London from Finland and started a new job. Things are quite busy but I will try to post an example now and then. In the meanwhile I would like to hear about sites using Imagick, so if your project is not super secret please post an url and maybe a small explanation what you’re doing with Imagick on the site. This is purely for my personal interest.
Anyway, to the point. Today’s example originates from a question asked by a user. How do I thumbnail the image inside given dimensions proportionally and fill the “blank” areas with a color ? Well, the answer is here
The code is for Imagick 2.1.0 but adapting to older versions should not be hard.
-
< ?php
-
/* Define width and height of the thumbnail */
-
$width = 100 ;
-
$height = 100 ;
-
-
/* Instanciate and read the image in */
-
$im = new Imagick( "test.png" ) ;
-
-
/* Fit the image into $width x $height box
-
The third parameter fits the image into a "bounding box" */
-
$im->thumbnailImage( $width, $height, true ) ;
-
-
/* Create a canvas with the desired color */
-
$canvas = new Imagick() ;
-
$canvas->newImage( $width, $height, ’pink’, ’png’ ) ;
-
-
/* Get the image geometry */
-
$geometry = $im->getImageGeometry() ;
-
-
/* The overlay x and y coordinates */
-
$x = ( $width - $geometry[’width’] ) / 2 ;
-
$y = ( $height - $geometry[’height’] ) / 2 ;
-
-
/* Composite on the canvas */
-
$canvas->compositeImage( $im, imagick: :COMPOSITE_OVER, $x, $y ) ;
-
-
/* Output the image*/
-
header( "Content-Type : image/png" ) ;
-
echo $canvas ;
-
-
?>
-