
Recherche avancée
Autres articles (108)
-
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...) -
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 -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (6906)
-
Ffmpeg configuration to stream the frames of my webcam
6 juillet 2023, par RidwengI'm trying to build a server in NodeJs to stream in RTSP my webcam using Angular to retrieve the frames and connecting using websockets. The server side is using "express-ws" module to create the Websocket.


I was successfull in sending the frames from the webcam to the server in base64, the server is receiving these messages from a function on interval of (1000 / 30)ms.


The issue relies on the implementation of my Ffmpeg child process. I retrieve the message and convert it into a buffer to then write this in the function of Ffmpeg.


My current implementation is this one :


const { spawn } = require('child_process');
exports.stream = (ws ,req) => {
 try{
 const mess = `connection from: ${req._remoteAddress} at ${req._startTime}.`
 const initialMess =`Started ${mess}`
 ws.uuid = uuidv4()
 console.log(initialMess)

 ws.on('message', function incoming(message) {
 message = JSON.parse(message)
 console.log(`Res: ${message.width} x ${message.height}`);
 const ffmpeg = spawn('ffmpeg', [
 '-f', 'rawvideo',
 '-pixel_format', 'rgb24',
 '-video_size', `${message.width}x${message.height}`,
 '-framerate', `${message.framerate}`,
 '-i', '-',
 '-codec:v', 'libx264',
 '-preset', 'ultrafast',
 '-tune', 'zerolatency',
 '-f', 'rtsp',
 'rtsp://127.0.0.1:554/rtsp/stream',
 ]);
 const base64Data = message.video;
 const videoData = Buffer.from(base64Data, 'base64');

 ffmpeg.stdin.write(videoData);
 ffmpeg.stdin.end();
 
 ffmpeg.stderr.on('data', (data) => {
 console.error(`FFmpeg : ${data}`);
 });

 ffmpeg.on('exit', (code, signal) => {
 if (dev) console.log(`FFmpeg process exited with code ${code} and signal ${signal}`);
 
 // Close the WebSocket connection
 ws.close();
 });
 });
 ws.on('close', () => {
 const finalMess = `Stopped ${mess}`
 rem(ws.uuid)
 console.log(finalMess)
 })
 }catch(err){
 console.log(err)
 }
}



In terms of the message received, this is the Angular side sending the message :


const imageData = this.canvas.toDataURL('image/jpeg');
socket.send(JSON.stringify({video: imageData, width: this.canvas.width, height: this.canvas.height, framerate: interval }));



The interval variable is the divisor of the interval that is triggering the function (in this case 30).


I'm currently receiving the error message from Ffmpeg :


ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
 built with Apple clang version 14.0.3 (clang-1403.0.22.14.1)

FFmpeg : configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
 libavutil 58. 2.100 / 58. 2.100
 libavcodec 60. 3.100 / 60. 3.100
 libavformat 60. 3.100 / 60. 3.100
 libavdevice 60. 1.100 / 60. 1.100
 libavfilter 9. 3.100 / 9. 3.100
 libswscale 7. 1.100 / 7. 1.100
 libswresample 4. 10.100 / 4. 10.100
 libpostproc 57. 1.100 / 57. 1.100

FFmpeg : [rawvideo @ 0x150005ff0] Packet corrupt (stream = 0, dts = 0).

FFmpeg : Input #0, rawvideo, from 'fd:':
 Duration: N/A, start: 0.000000, bitrate: 221184 kb/s
 Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 640x480, 221184 kb/s, 30 tbr, 30 tbn

FFmpeg : Stream mapping:
 Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))

FFmpeg : fd:: corrupt input packet in stream 0
[rawvideo @ 0x14ef24290] Invalid buffer size, packet size 76343 < expected frame_size 921600

FFmpeg : Error while decoding stream #0:0: Invalid argument

FFmpeg : [libx264 @ 0x14ef25a20] using cpu capabilities: ARMv8 NEON

FFmpeg : [libx264 @ 0x14ef25a20] profile High 4:4:4 Predictive, level 3.0, 4:4:4, 8-bit

FFmpeg : [libx264 @ 0x14ef25a20] 264 - core 164 r3095 baee400 - H.264/MPEG-4 AVC codec - Copyleft 2003-2022 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=6 threads=7 lookahead_threads=7 sliced_threads=1 slices=7 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0

FFmpeg : [tcp @ 0x1500078a0] Connection to tcp://127.0.0.1:554?timeout=0 failed: Connection refused
[out#0/rtsp @ 0x14ef24b00] Could not write header (incorrect codec parameters ?): Connection refused

FFmpeg : [vost#0:0/libx264 @ 0x14ef256d0] Error initializing output stream: 

FFmpeg : Conversion failed!

FFmpeg process exited with code 1 and signal null



This is the reason I believe the issue relies on the configuration of Ffmpeg and how to set it for this case. It would be great to being able to play this RTSP link in my VLC to conclude it as successfull.


I would apreciate any suggestions or guidence.
Thanks in advance.


-
jpg images to gif ffmpeg no data found in image
3 juillet 2023, par Idk123I was trying to use ffmpeg to create a gif from jpg images, but I wasn't able to convert them, not through a python code and not even from the dir itself in cmd




python code :


input_files = f"{BASE_DIR}\\qr_images\\qr%d.jpg"
command = f'ffmpeg -i {input_files} output.gif'
os.system(f'start /wait cmd /k {command}')





I need the files in the dir to be able to convert to gif using ffmpeg (I have it installed correctly)


this is the complete cmd dialog (if I run it from the dir in cmd or if i run the python code :


ffmpeg version 6.0-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers built with gcc 12.2.0 (Rev10, 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-zlib —enable-libsrt —enable-libssh —enable-libzmq —enable-avisynth —enable-sdl2 —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxvid —enable-libaom —enable-libopenjpeg —enable-libvpx —enable-mediafoundation —enable-libass —enable-libfreetype —enable-libfribidi —enable-libvidstab —enable-libvmaf —enable-libzimg —enable-amf —enable-cuda-llvm —enable-cuvid —enable-ffnvcodec —enable-nvdec —enable-nvenc —enable-d3d11va —enable-dxva2 —enable-libvpl —enable-libgme —enable-libopenmpt —enable-libopencore-amrwb —enable-libmp3lame —enable-libtheora —enable-libvo-amrwbenc —enable-libgsm —enable-libopencore-amrnb —enable-libopus —enable-libspeex —enable-libvorbis —enable-librubberband libavutil 58. 2.100 / 58. 2.100 libavcodec 60. 3.100 / 60. 3.100 libavformat 60. 3.100 /
60. 3.100 libavdevice 60. 1.100 / 60. 1.100 libavfilter 9. 3.100 / 9. 3.100 libswscale 7. 1.100 / 7. 1.100 libswresample 4. 10.100 / 4. 10.100 libpostproc 57. 1.100 /
57. 1.100 [mjpeg @ 000002000696bfc0] No JPEG data found in image [mjpeg @ 000002000696bfc0] unable to decode APP fields : Invalid data found when processing input
Last message repeated 1 times [mjpeg @ 000002000696bfc0] No JPEG data found in image [mjpeg @ 000002000696bfc0] unable to decode APP fields : Invalid data found when processing input
Last message repeated 1 times [mjpeg @ 000002000696bfc0] Found EOI before any SOF, ignoring [mjpeg @ 000002000696bfc0] No JPEG data found in image [mjpeg @ 000002000696bfc0] bits 159 is invalid [mjpeg @ 000002000696bfc0] unable to decode APP fields : Invalid data found when processing input
Last message repeated 2 times [mjpeg @ 000002000696bfc0] bits 247 is invalid [mjpeg @ 000002000696bfc0] unable to decode APP fields : Invalid data found when processing input [mjpeg @ 000002000696bfc0] No JPEG data found in image [mjpeg @ 000002000696bfc0] unable to decode APP fields : Invalid data found when processing input [mjpeg @ 000002000696bfc0] No JPEG data found in image [image2 @ 000002000696aec0] Could not find codec parameters for stream 0 (Video : mjpeg (Progressive), none(bt470bg/unknown/unknown)) : unspecified size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options Input #0, image2, from 'c :\Test_proj\qr_images\qr%d.jpg' : Duration : 00:00:00.28, start :
0.000000, bitrate : N/A Stream #0:0 : Video : mjpeg (Progressive), none(bt470bg/unknown/unknown), 25 fps, 25 tbr, 25 tbn Stream mapping : Stream #0:0 -> #0:0 (mjpeg (native) -> gif (native)) Press [q] to stop, [?] for help [mjpeg @ 00000200069a35c0] mjpeg : unsupported coding type (c5) [mjpeg @ 00000200069a35c0] mjpeg : unsupported coding type (ca) Error while decoding stream #0:0 : Invalid data found when processing input [mjpeg @ 00000200069a35c0] unable to decode APP fields : Invalid data found when processing input
Last message repeated 1 times [mjpeg @ 00000200069a35c0] mjpeg : unsupported coding type (ce) [mjpeg @ 00000200069a35c0] No JPEG data found in image Error while decoding stream #0:0 : Invalid data found when processing input [mjpeg @ 00000200069a35c0] unable to decode APP fields : Invalid data found when processing input
Last message repeated 1 times [mjpeg @ 00000200069a35c0] mjpeg : unsupported coding type (cb) [mjpeg @ 00000200069a35c0] Found EOI before any SOF, ignoring [mjpeg @ 00000200069a35c0] Can not process SOS before SOF, skipping [mjpeg @ 00000200069a35c0] No JPEG data found in image Error while decoding stream #0:0 : Invalid data found when processing input [mjpeg @ 00000200069a35c0] bits 159 is invalid Error while decoding stream #0:0 : Invalid data found when processing input [mjpeg @ 00000200069a35c0] unable to decode APP fields : Invalid data found when processing input
Last message repeated 2 times [mjpeg @ 00000200069a35c0] bits 247 is invalid Error while decoding stream #0:0 : Invalid data found when processing input [mjpeg @ 00000200069a35c0] unable to decode APP fields : Invalid data found when processing input [mjpeg @ 00000200069a35c0] mjpeg : unsupported coding type (c6) [mjpeg @ 00000200069a35c0] No JPEG data found in image Error while decoding stream #0:0 : Invalid data found when processing input [mjpeg @ 00000200069a35c0] Can not process SOS before SOF, skipping [mjpeg @ 00000200069a35c0] unable to decode APP fields : Invalid data found when processing input [mjpeg @ 00000200069a35c0] Can not process SOS before SOF, skipping
Last message repeated 2 times [mjpeg @ 00000200069a35c0] No JPEG data found in image Error while decoding stream #0:0 : Invalid data found when processing input Cannot determine format of input stream 0:0 after EOF Error marking filters as finished Conversion failed !


-
ffprobe not showing language tag for ASS files in Ubuntu
9 juillet 2023, par EfraínThis is something that has me totally lost, because I'm not sure what could I have done, but from one week to another, "language" stopped appearing in the tags of an ASS track on a MKV. I know this just started to appear, because just last week I ended working on an script to detect the language of tracks, and today that I decided to test it again, I noted that it started to fail, and from my debug it's because ffprobe is now printing this


{
 "index": 2,
 "codec_name": "ass",
 "codec_long_name": "ASS (Advanced SSA) subtitle",
 "codec_type": "subtitle",
 "codec_tag_string": "[0][0][0][0]",
 "codec_tag": "0x0000",
 "r_frame_rate": "0/0",
 "avg_frame_rate": "0/0",
 "time_base": "1/1000",
 "start_pts": 0,
 "start_time": "0.000000",
 "duration_ts": 1430816,
 "duration": "1430.816000",
 "disposition": {
 "default": 1,
 "dub": 0,
 "original": 0,
 "comment": 0,
 "lyrics": 0,
 "karaoke": 0,
 "forced": 0,
 "hearing_impaired": 0,
 "visual_impaired": 0,
 "clean_effects": 0,
 "attached_pic": 0,
 "timed_thumbnails": 0
 },
 "tags": {
 "BPS-eng": "85",
 "DURATION-eng": "00:23:34.830000000",
 "NUMBER_OF_FRAMES-eng": "262",
 "NUMBER_OF_BYTES-eng": "15128",
 "_STATISTICS_WRITING_APP-eng": "mkvmerge v40.0.0 ('Old Town Road + Pony') 32-bit",
 "_STATISTICS_WRITING_DATE_UTC-eng": "2023-07-02 11:29:54",
 "_STATISTICS_TAGS-eng": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES"
 }
}



Where it should be a field called "language" in the "tags", like this(Note that other file types, like SRT, or audio tracks show it correctly)


"tags": {
 "language": "eng",
 "BPS-eng": "128000",
 "DURATION-eng": "00:23:50.813000000",
 "NUMBER_OF_FRAMES-eng": "61620",
 "NUMBER_OF_BYTES-eng": "22893018",
 "_STATISTICS_WRITING_APP-eng": "mkvmerge v40.0.0 ('Old Town Road + Pony') 32-bit",
 "_STATISTICS_WRITING_DATE_UTC-eng": "2023-07-02 11:29:54",
 "_STATISTICS_TAGS-eng": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES"
}



The weird part is that is the same file I used for testing(And it worked), and I haven't edited it, so I'm not sure why is this happening, Does someone knows if I might have messed up something installing a library for another thing that might have caused it ?


Just in case is necessary, this is the command I use :
ffprobe -v quiet -print_format json -show_streams <file></file>