
Recherche avancée
Autres articles (34)
-
Qu’est ce qu’un éditorial
21 juin 2013, parEcrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
Vous pouvez personnaliser le formulaire de création d’un éditorial.
Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...) -
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela. -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.
Sur d’autres sites (6477)
-
How can I pipe JPEG files into FFMPEG and create an RTSP, H.264 stream ?
25 janvier 2023, par Michael SchmidtI have an input RTSP stream that I would like to manipulate on a frame-by-frame basis using openCV. After these changes are applied, I'd like to create a separate RTSP stream from those frames. I'm piping the resulting JPEG images to FFMPEG via STDIN. I need the intermediate frame to be a JPEG.


In other words, I must conform to this pattern :
RTSP IN -> Create JPEG as input -> manipulation, JPEG out -> RTSP


The PROBLEM I'm trying to solve deals with a codec at this point. See the last few lines of FFMPEG's output error message.


Here is what I have :


def open_ffmpeg_stream_process():
 args = (
 "ffmpeg -re -stream_loop -1 "
 "-f jpeg_pipe "
 "-s 512x288 "
 "-i pipe:0 "
 "-c:v h264 "
 "-f rtsp "
 "rtsp://localhost:8100/out0"
 ).split()
 return subprocess.Popen(args, stdin=subprocess.PIPE)

video_source = cv2.VideoCapture('rtsp://localhost:9100/in0')

frame_cnt = 0
FRAME_SKIP = 30

ffmpeg_process = open_ffmpeg_stream_process()
while video_source.isOpened():

 frame_cnt += 1
 if frame_cnt % FRAME_SKIP:
 continue
 else:
 frame_cnt = 0

 _, frame = video_source.read()
 _, jpg = cv2.imencode('.jpg', frame)

 # Work on the JPEG occurs here, and the output will be a JPEG

 ffmpeg_process.stdin.write(jpg.astype(np.uint8).tobytes())

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

video_source.release()



Here is FFMPEG's output :


ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
 built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
 configuration: ---- noisy configuration stuff ----
 libavutil 56. 70.100 / 56. 70.100
 libavcodec 58.134.100 / 58.134.100
 libavformat 58. 76.100 / 58. 76.100
 libavdevice 58. 13.100 / 58. 13.100
 libavfilter 7.110.100 / 7.110.100
 libswscale 5. 9.100 / 5. 9.100
 libswresample 3. 9.100 / 3. 9.100
 libpostproc 55. 9.100 / 55. 9.100
Input #0, jpeg_pipe, from 'pipe:0':
 Duration: N/A, bitrate: N/A
 Stream #0:0: Video: mjpeg, rgb24(bt470bg/unknown/unknown), 512x288, 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
 Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
[libx264 @ 0x562a1ffc5840] using SAR=1/1
[libx264 @ 0x562a1ffc5840] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x562a1ffc5840] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x562a1ffc5840] 264 - core 163 r3060 5db6aa6 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=18 lookahead_threads=3 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
[tcp @ 0x562a20826c00] Connection to tcp://localhost:8100?timeout=0 failed: Connection refused
Could not write header for output file #0 (incorrect codec parameters ?): Connection refused
Error initializing output stream 0:0 -- 
Conversion failed!



How does one create an H.264, RTSP stream from a series of JPEG frames using FFMPEG.


Notes : The FFMPEG command/subproccess might need unrelated improvements, feel free to comment on my crappy code.


Edit : Oof, I just found out the FFMPEG command doesn't even work stand alone.


-
Nginx RTMP "Server Error : No Such Stream"
7 août 2024, par Tony RuthI am trying to capture and stream video within my network 10.100.64.1/24 using libnginx-mod-rtmp. I followed a tutorial. I used the same URL for publishing and playing : rtmp ://10.100.64.4/lab/test But the player does not find the stream.


My nginx settings :


rtmp {

 server {

 listen 1935;
 chunk_size 4096;
 allow publish 127.0.0.1;
 allow publish 10.100.64.4/24;
 deny publish all;
 allow play 127.0.0.1;
 allow play 10.100.64.4/24;
 deny play all;

 application lab {

 live on;
 idle_streams off;
 record all;
 record_path /media/HLEV/GoPro/Raw;
 record_unique on;
 } 
 }
} 



The server lives on 10.100.64.4, so I published a video using ffmpeg :


ffmpeg -stream_loop -1 -re -i MyVideo.flv -c:v copy -c:a aac -ar 44100 -ac 1 -f flv -flvflags no_duration_filesize rtmp://10.100.64.4/lab/test



The publishing looks good. Last line of the above command :


frame=54030 fps= 60 q=-1.0 size= 119584kB time=00:15:01.00 bitrate=1087.3kbits/s speed= 1x 



And I can see that the video is being saved locally from the record block of the nginx settings.


Then I try to play the stream using ffplay :


ffplay -i rtmp://10.100.64.4/lab/test
ffplay version 5.1.5-0+deb12u1 Copyright (c) 2003-2024 the FFmpeg developers
 built with gcc 12 (Debian 12.2.0-14)
 configuration: --prefix=/usr --extra-version=0+deb12u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
[rtmp @ 0x7fe7940015c0] Server error: No such stream= 0B f=0/0 
rtmp://127.0.0.1/lab/test: Operation not permitted
 nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0 



ffplay does not find the stream.


I can observe both the publish and play commands by examine the access log of nginx :


sudo tail -2 /var/log/nginx/access.log 
10.100.64.4 [07/Aug/2024:12:24:56 -0500] PUBLISH "lab" "test" "" - 45365243 529 "" "FMLE/3.0 (compatible; Lavf59.27" (5m 36s)
10.100.64.4 [07/Aug/2024:12:25:03 -0500] PLAY "lab" "test" "" - 368 412 "" "LNX 9,0,124,2" (0s)



I have tried using different video streams (directly from a webcam instead of from ffmpeg). I have also tried using different players (VLC instead of ffplay).


How do I connect to the stream ?
Do you need different URLs for publishing versus playing ? The way I understood it, publishing is on port 1395 and playing is on port 80, so there is no conflict with using the same URL.
Is there a way to list the currently active streams on my server ?


-
Convert mp3 -> Video with static image ( ffmpeg/libav & BASH )
17 avril 2022, par MaxSome years ago I used the following bash script to get a video out of mp3's and one image (so the image in the video was freezed over the length of the mp3), which worked out fine.



i=0;
for file in *.mp3; 
do 
i=$((i+1));
ffmpeg -loop 1 -shortest -y -i image.jpg -i $file -acodec copy -vcodec libx264 $file.flv;
done




Now I wanted to use this again for doing the same.



Problem :



It does not stop converting at the end of the mp3. Means the current mp3 file eg. has a length of 3 minutes and the script converts until forever or I stop it, so the length of the flv is much bigger than 3 minutes.



(ffmpeg is installed, but with libav the same happens)



Output :



ffmpeg version 1.2.6-7:1.2.6-1~trusty1 Copyright (c) 2000-2014 the FFmpeg developers
 built on Apr 26 2014 18:52:58 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
 configuration: --arch=amd64 --disable-stripping --enable-avresample --enable-pthreads --enable-runtime-cpudetect --extra-version='7:1.2.6-1~trusty1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
 libavutil 52. 18.100 / 52. 18.100
 libavcodec 54. 92.100 / 54. 92.100
 libavformat 54. 63.104 / 54. 63.104
 libavdevice 53. 5.103 / 53. 5.103
 libavfilter 3. 42.103 / 3. 42.103
 libswscale 2. 2.100 / 2. 2.100
 libswresample 0. 17.102 / 0. 17.102
 libpostproc 52. 2.100 / 52. 2.100
[image2 @ 0x6d0740] max_analyze_duration 5000000 reached at 5000000 microseconds
Input #0, image2, from 'Bild2.png':
 Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
 Stream #0:0: Video: png, rgba, 382x417, 25 fps, 25 tbr, 25 tbn, 25 tbc
[mp3 @ 0x6c4ac0] max_analyze_duration 5000000 reached at 5015510 microseconds
[mp3 @ 0x6c4ac0] Estimating duration from bitrate, this may be inaccurate
Input #1, mp3, from 'sons.mp3':
 Duration: 00:00:35.11, start: 0.000000, bitrate: 127 kb/s
 Stream #1:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
[libx264 @ 0x6da700] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x6da700] profile High 4:4:4 Predictive, level 2.1, 4:4:4 8-bit
[libx264 @ 0x6da700] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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=4 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, flv, to 'sons.mp3.flv':
 Metadata:
 encoder : Lavf54.63.104
 Stream #0:0: Video: h264 ([7][0][0][0] / 0x0007), yuv444p, 382x417, q=-1--1, 1k tbn, 25 tbc
 Stream #0:1: Audio: mp3 ([2][0][0][0] / 0x0002), 44100 Hz, stereo, 128 kb/s
Stream mapping:
 Stream #0:0 -> #0:0 (png -> libx264)
 Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help