
Recherche avancée
Médias (91)
-
Géodiversité
9 septembre 2011, par ,
Mis à jour : Août 2018
Langue : français
Type : Texte
-
USGS Real-time Earthquakes
8 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
-
SWFUpload Process
6 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
-
La conservation du net art au musée. Les stratégies à l’œuvre
26 mai 2011
Mis à jour : Juillet 2013
Langue : français
Type : Texte
-
Podcasting Legal guide
16 mai 2011, par
Mis à jour : Mai 2011
Langue : English
Type : Texte
-
Creativecommons informational flyer
16 mai 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (83)
-
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 (...) -
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 (...) -
MediaSPIP Player : problèmes potentiels
22 février 2011, parLe lecteur ne fonctionne pas sur Internet Explorer
Sur Internet Explorer (8 et 7 au moins), le plugin utilise le lecteur Flash flowplayer pour lire vidéos et son. Si le lecteur ne semble pas fonctionner, cela peut venir de la configuration du mod_deflate d’Apache.
Si dans la configuration de ce module Apache vous avez une ligne qui ressemble à la suivante, essayez de la supprimer ou de la commenter pour voir si le lecteur fonctionne correctement : /** * GeSHi (C) 2004 - 2007 Nigel McNie, (...)
Sur d’autres sites (7383)
-
ffmpeg when asked to map a .mov file's streams 0,1,3 actually maps streams 0,1,2
15 septembre 2023, par user2258729I'm trying the following :


Start with
in.mov
which has 4 streams 0:0 - 0:3.

Audio, Video, Data (unknown), and mJpeg.


Trying to map 0:0, 0:1, and 0:3 into
out013.mov
.

ffmpeg -i in.mov -map 0 -map -0:2 -c copy out013.mov


or


ffmpeg -i in.mov -map 0:0 -map 0:1 -map 0:2 -c copy out013.mov


ffmpeg tells me that 3 streams are mapped :


Stream #0:0 -> #0:0 (copy)
 Stream #0:1 -> #0:1 (copy)
 Stream #0:3 -> #0:2 (copy)



ffprobe disagrees. According to it what really happened was :


Stream #0:0 -> #0:0 (copy)
 Stream #0:1 -> #0:1 (copy)
 Stream #0:2 -> #0:2 (copy)



"Who needs a thumbnail image anyways, screw it !" I said. "Let's just get rid of the data."


ffmpeg -i out013.mov -map 0:0 -map 0:1 -c copy out01.mov


ffmpeg tells me that 2 streams are mapped :


Stream #0:0 -> #0:0 (copy)
 Stream #0:1 -> #0:1 (copy)



ffprobe disagrees. According to it what really happened was :


Stream #0:0 -> #0:0 (copy)
 Stream #0:1 -> #0:1 (copy)
 Stream #0:2 -> #0:2 (copy)



Seems like I can't rid myself of that data stream (0:2).


Below is the output from the ffprobe and ffmpeg for the first scenario.


Any ideas ?



ffprobe in.mov


ffprobe version 2023-09-07-git-9c9f48e7f2-essentials_build-www.gyan.dev Copyright (c) 2007-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-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --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. 19.100 / 58. 19.100
 libavcodec 60. 26.100 / 60. 26.100
 libavformat 60. 11.100 / 60. 11.100
 libavdevice 60. 2.101 / 60. 2.101
 libavfilter 9. 11.100 / 9. 11.100
 libswscale 7. 3.100 / 7. 3.100
 libswresample 4. 11.100 / 4. 11.100
 libpostproc 57. 2.100 / 57. 2.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000023b088f3300] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mov':
 Metadata:
 major_brand : qt
 minor_version : 0
 compatible_brands: qt
 creation_time : 2023-08-22T21:23:09.000000Z
 title : Redacted
 com.apple.quicktime.displayname: Redacted
 com.apple.quicktime.title: Redacted
 Duration: 00:00:30.03, start: 0.000000, bitrate: 152583 kb/s
 Stream #0:0[0x1](eng): Audio: pcm_s24le (lpcm / 0x6D63706C), 48000 Hz, 2 channels, s32 (24 bit), 2304 kb/s (default)
 Metadata:
 creation_time : 2023-08-22T21:23:09.000000Z
 handler_name : Core Media Audio
 vendor_id : [0][0][0][0]
 Stream #0:1[0x2](und): Video: prores (Standard) (apcn / 0x6E637061), yuv422p10le(bt709, progressive), 1920x1080, 150213 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 30k tbn (default)
 Metadata:
 creation_time : 2023-08-22T21:23:09.000000Z
 handler_name : Core Media Video
 vendor_id : [0][0][0][0]
 encoder : Apple ProRes 422
 timecode : 00:00:00:00
 Stream #0:2[0x3](und): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
 Metadata:
 creation_time : 2023-08-22T21:23:09.000000Z
 handler_name : Core Media Time Code
 timecode : 00:00:00:00
 Stream #0:3[0x0]: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 1920x1080 [SAR 72:72 DAR 16:9], 90k tbr, 90k tbn (attached pic)
Unsupported codec with id 0 for input stream 2




ffmpeg -i in.mov -map 0:0 -map 0:1 -map 0:3 -c copy out013.mov


ffmpeg version 2023-09-07-git-9c9f48e7f2-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-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --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. 19.100 / 58. 19.100
 libavcodec 60. 26.100 / 60. 26.100
 libavformat 60. 11.100 / 60. 11.100
 libavdevice 60. 2.101 / 60. 2.101
 libavfilter 9. 11.100 / 9. 11.100
 libswscale 7. 3.100 / 7. 3.100
 libswresample 4. 11.100 / 4. 11.100
 libpostproc 57. 2.100 / 57. 2.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001f92e383880] stream 0, timescale not set
[aist#0:0/pcm_s24le @ 000001f92e50f400] Guessed Channel Layout: stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mov':
 Metadata:
 major_brand : qt
 minor_version : 0
 compatible_brands: qt
 creation_time : 2023-08-22T21:23:09.000000Z
 title : Redacted
 com.apple.quicktime.displayname: Redacted
 com.apple.quicktime.title: Redacted
 Duration: 00:00:30.03, start: 0.000000, bitrate: 152583 kb/s
 Stream #0:0[0x1](eng): Audio: pcm_s24le (lpcm / 0x6D63706C), 48000 Hz, 2 channels, s32 (24 bit), 2304 kb/s (default)
 Metadata:
 creation_time : 2023-08-22T21:23:09.000000Z
 handler_name : Core Media Audio
 vendor_id : [0][0][0][0]
 Stream #0:1[0x2](und): Video: prores (Standard) (apcn / 0x6E637061), yuv422p10le(bt709, progressive), 1920x1080, 150213 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 30k tbn (default)
 Metadata:
 creation_time : 2023-08-22T21:23:09.000000Z
 handler_name : Core Media Video
 vendor_id : [0][0][0][0]
 encoder : Apple ProRes 422
 timecode : 00:00:00:00
 Stream #0:2[0x3](und): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
 Metadata:
 creation_time : 2023-08-22T21:23:09.000000Z
 handler_name : Core Media Time Code
 timecode : 00:00:00:00
 Stream #0:3[0x0]: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 1920x1080 [SAR 72:72 DAR 16:9], 90k tbr, 90k tbn (attached pic)
Output #0, mov, to 'out013.mov':
 Metadata:
 major_brand : qt
 minor_version : 0
 compatible_brands: qt
 com.apple.quicktime.title: Redacted
 title : Redacted
 com.apple.quicktime.displayname: Redacted
 encoder : Lavf60.11.100
 Stream #0:0(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default)
 Metadata:
 creation_time : 2023-08-22T21:23:09.000000Z
 handler_name : Core Media Audio
 vendor_id : [0][0][0][0]
 Stream #0:1(und): Video: prores (Standard) (apcn / 0x6E637061), yuv422p10le(bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 150213 kb/s, 29.97 fps, 29.97 tbr, 30k tbn (default)
 Metadata:
 creation_time : 2023-08-22T21:23:09.000000Z
 handler_name : Core Media Video
 vendor_id : [0][0][0][0]
 encoder : Apple ProRes 422
 timecode : 00:00:00:00
 Stream #0:2: Video: mjpeg (Progressive) (jpeg / 0x6765706A), yuvj420p(pc, bt470bg/unknown/unknown), 1920x1080 [SAR 72:72 DAR 16:9], q=2-31, 90k tbr, 90k tbn (attached pic)
Stream mapping:
 Stream #0:0 -> #0:0 (copy)
 Stream #0:1 -> #0:1 (copy)
 Stream #0:3 -> #0:2 (copy)
Press [q] to stop, [?] for help
[out#0/mov @ 000001f92e398340] video:550881kB audio:8446kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
frame= 900 fps=0.0 q=-1.0 Lq=-1.0 size= 559116kB time=00:00:30.02 bitrate=152567.6kbits/s speed= 117x




ffprobe out013.mov


ffprobe version 2023-09-07-git-9c9f48e7f2-essentials_build-www.gyan.dev Copyright (c) 2007-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-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --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. 19.100 / 58. 19.100
 libavcodec 60. 26.100 / 60. 26.100
 libavformat 60. 11.100 / 60. 11.100
 libavdevice 60. 2.101 / 60. 2.101
 libavfilter 9. 11.100 / 9. 11.100
 libswscale 7. 3.100 / 7. 3.100
 libswresample 4. 11.100 / 4. 11.100
 libpostproc 57. 2.100 / 57. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out013.mov':
 Metadata:
 major_brand : qt
 minor_version : 512
 compatible_brands: qt
 title : Redacted
 encoder : Lavf60.11.100
 timecode : 00:00:00:00
 Duration: 00:00:30.03, start: 0.000000, bitrate: 152523 kb/s
 Stream #0:0[0x1](eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default)
 Metadata:
 handler_name : Core Media Audio
 vendor_id : [0][0][0][0]
 Stream #0:1[0x2]: Video: prores (Standard) (apcn / 0x6E637061), yuv422p10le(bt709, progressive), 1920x1080, 150213 kb/s, SAR 1:1 DAR 16:9, 29.97 fps, 29.97 tbr, 30k tbn (default)
 Metadata:
 handler_name : Core Media Video
 vendor_id : FFMP
 encoder : Apple ProRes 422
 timecode : 00:00:00:00
 Stream #0:2[0x4](eng): Data: none (tmcd / 0x64636D74), 0 kb/s
 Metadata:
 handler_name : Core Media Video
 timecode : 00:00:00:00
Unsupported codec with id 0 for input stream 2




-
FFMPEG changes pixel values when reading and saving png without modification
25 janvier 2023, par walrusThis is a toy problem that is the result of my trying to identify a bug within a video pipeline I'm working on. The idea is that I want to take a frame from a YUV420 video, modify it as an RGB24 image, and reinsert it. To do this I convert YUV420 -> YUV444 -> RGB -> YUV444 -> YUV420. Doing this without any modification should result in the same frame however I noticed slight color transformations.


I tried to isolate the problem using a toy 3x3 RGB32 png image. The function
read_and_save_image
reads the image and then saves it as new file. It returns the read pixel array. I run this function thrice successively using the output of the previous run as the input of the next. This is to demonstrate a perplexing fact. While passing an image through the function once causes the resulting image to have different pixel values, doing it twice does not change anything. Perhaps more confusing is that the pixel values returned by the function are all the same.

tldr ; How can I load and save the toy image below using ffmpeg as a new file such that the pixel values of the new and original files are identical ?


Here is the original image followed by the result from one and two passes through the function. Note that the pixel value displayed by when reading these images with Preview has changed ever so slightly. This becomes noticeable within a video.


Test image (very small) ->

<-


Here are the pixel values read (note that after being loaded and saved there is a change) :








Edit : here is an RGB24 frame extracted from a video I am using to test my pipeline. I had the same issue with pixel values changing after loading and saving with ffmpeg.


frame from video I was testing pipeline on


Here is a screenshot showing how the image is noticeably darker after ffmpeg. Same pixels on the top right corner of the image.




Here is the code of the toy problem :


import os
import ffmpeg
import numpy as np


def read_and_save_image(in_file, out_file, width, height, pix_fmt='rgb32'):
 input_data, _ = (
 ffmpeg
 .input(in_file)
 .output('pipe:', format='rawvideo', pix_fmt=pix_fmt)
 .run(capture_stdout=True)
 )
 
 frame = np.frombuffer(input_data, np.uint8)
 print(in_file,'\n', frame.reshape((height,width,-1)))
 
 save_data = (
 ffmpeg
 .input('pipe:', format='rawvideo', pix_fmt=pix_fmt, s='{}x{}'.format(width, height))
 .output(out_file, pix_fmt=pix_fmt)
 .overwrite_output()
 .run_async(pipe_stdin=True)
 )
 
 

 save_data.stdin.write(frame.tobytes())
 save_data.stdin.close()
 #save_data.wait()

 return frame

try:
 test_img = "test_image.png"
 test_img_1 = "test_image_1.png"
 test_img_2 = "test_image_2.png"
 test_img_3 = "test_image_3.png"

 width, height, pix_fmt = 3,3,'rgb32'
 #width, height, pix_fmt = video_stream['width'], video_stream['height'], 'rgb24'
 test_img_pxls = read_and_save_image(test_img,test_img_1, width, height, pix_fmt)
 test_img_1_pxls = read_and_save_image(test_img_1,test_img_2, width, height, pix_fmt)
 test_img_2_pxls = read_and_save_image(test_img_2,test_img_3, width, height, pix_fmt)

 print(np.array_equiv(test_img_pxls, test_img_1_pxls))
 print(np.array_equiv(test_img_1_pxls, test_img_2_pxls))

except ffmpeg.Error as e:
 print('stdout:', e.stdout.decode('utf8'))
 print('stderr:', e.stderr.decode('utf8'))
 raise e


!mediainfo --Output=JSON --Full $test_img
!mediainfo --Output=JSON --Full $test_img_1
!mediainfo --Output=JSON --Full $test_img_2



Here is the console output of the program that shows that the pixel arrays read by ffmpeg are the same despite the images being different.


test_image.png 
 [[[253 218 249 255]
 [252 213 248 255]
 [251 200 244 255]]

 [[253 227 250 255]
 [249 209 236 255]
 [243 169 206 255]]

 [[253 235 251 255]
 [245 195 211 255]
 [226 103 125 255]]]
test_image_1.png 
 [[[253 218 249 255]
 [252 213 248 255]
 [251 200 244 255]]

 [[253 227 250 255]
 [249 209 236 255]
 [243 169 206 255]]

 [[253 235 251 255]
 [245 195 211 255]
 [226 103 125 255]]]
test_image_2.png 
 [[[253 218 249 255]
 [252 213 248 255]
 [251 200 244 255]]

 [[253 227 250 255]
 [249 209 236 255]
 [243 169 206 255]]

 [[253 235 251 255]
 [245 195 211 255]
 [226 103 125 255]]]
True
True
{
"media": {
"@ref": "test_image.png",
"track": [
{
"@type": "General",
"ImageCount": "1",
"FileExtension": "png",
"Format": "PNG",
"FileSize": "4105",
"StreamSize": "0",
"File_Modified_Date": "UTC 2023-01-19 13:49:00",
"File_Modified_Date_Local": "2023-01-19 13:49:00"
},
{
"@type": "Image",
"Format": "PNG",
"Format_Compression": "LZ77",
"Width": "3",
"Height": "3",
"BitDepth": "32",
"Compression_Mode": "Lossless",
"StreamSize": "4105"
}
]
}
}

{
"media": {
"@ref": "test_image_1.png",
"track": [
{
"@type": "General",
"ImageCount": "1",
"FileExtension": "png",
"Format": "PNG",
"FileSize": "128",
"StreamSize": "0",
"File_Modified_Date": "UTC 2023-01-24 15:31:58",
"File_Modified_Date_Local": "2023-01-24 15:31:58"
},
{
"@type": "Image",
"Format": "PNG",
"Format_Compression": "LZ77",
"Width": "3",
"Height": "3",
"BitDepth": "32",
"Compression_Mode": "Lossless",
"StreamSize": "128"
}
]
}
}

{
"media": {
"@ref": "test_image_2.png",
"track": [
{
"@type": "General",
"ImageCount": "1",
"FileExtension": "png",
"Format": "PNG",
"FileSize": "128",
"StreamSize": "0",
"File_Modified_Date": "UTC 2023-01-24 15:31:59",
"File_Modified_Date_Local": "2023-01-24 15:31:59"
},
{
"@type": "Image",
"Format": "PNG",
"Format_Compression": "LZ77",
"Width": "3",
"Height": "3",
"BitDepth": "32",
"Compression_Mode": "Lossless",
"StreamSize": "128"
}
]
}
}




-
ffmpeg doesn't work when the script is launched by cron - No protocol specified, Cannot open display :0.0
14 janvier 2024, par a kffmpeg in my script doesn't work when the script is launched by cron of the root


Error : No protocol specified, Cannot open display :0.0


OS : Ubuntu 20.04


#!/bin/bash
log=/var/log/log2/log2.txt

echo ______________ $(date) >> "$log"
echo "$""DISPLAY" "= " "$DISPLAY" >> "$log" ;
echo whoami ' ' $(whoami) >> "$log" 
echo pwd ' ' $(pwd) >> "$log" 
echo "$""USER" "=" ' ' "$USER" >> "$log"
echo PATH ' ' "$PATH" >> "$log"
echo which ffmpeg ' ' $(which ffmpeg)>> "$log" 
echo whereis ffmpeg ' ' $(whereis ffmpeg) >> "$log" 
echo "\nls -l /bin/* | grep ffmpeg" ' ' >> "$log"
ls -l /usr/bin/* | grep ffmpeg >> "$log"
echo "ls -l /var/log | grep log2" ' '>> "$log"
ls -l /var/log | grep log2 >> "$log"

ffmpeg -y -f x11grab -s 1366x768 -i :0.0 -r 25 /var/log/log2/test.mp4 -loglevel error 2>>"$log" &

echo "pid ffmpeg ""$""!"" = " "$!" >> "$log" 
sleep 5
kill "$!"
echo exit >> "$log"
exit



When Cron (Cron of the root) launches the script, ffmpeg shows the error "No protocol specified, Cannot open display :0.0"


/var/log/log2/log2.txt :


______________ ven. 05 mai 2023 04:10:01 CEST
$DISPLAY = 
whoami root
pwd /root
$USER = 
PATH /usr/bin:/bin
which ffmpeg /usr/bin/ffmpeg
whereis ffmpeg ffmpeg: /usr/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
ls -l /usr/bin/* | grep ffmpeg 
-rwxr-xr-x 1 root root 284976 mai 18 2022 /usr/bin/ffmpeg
ls -l /var/log | grep log2 
drwxrwxrwx 2 root root 4096 mai 5 04:09 log2
pid ffmpeg $! = 74590
No protocol specified
[x11grab @ 0x56244aa06740] Cannot open display :0.0, error 1.
:0.0: Input/output error
exit



When I launch the script manually as a not-root user (with sudo), everything work correctly :


______________ ven. 05 mai 2023 04:10:47 CEST
$DISPLAY = :0
whoami root
pwd /home/an
$USER = root
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
which ffmpeg /usr/bin/ffmpeg
whereis ffmpeg ffmpeg: /usr/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
ls -l /usr/bin/* | grep ffmpeg 
-rwxr-xr-x 1 root root 284976 mai 18 2022 /usr/bin/ffmpeg
ls -l /var/log | grep log2 
drwxrwxrwx 2 root root 4096 mai 5 04:09 log2
pid ffmpeg $! = 74618
exit



When I launch the script manually as the root, everything works correctly :


______________ ven. 05 mai 2023 04:11:27 CEST
$DISPLAY = :0
whoami root
pwd /root
$USER = root
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
which ffmpeg /usr/bin/ffmpeg
whereis ffmpeg ffmpeg: /usr/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
ls -l /usr/bin/* | grep ffmpeg 
-rwxr-xr-x 1 root root 284976 mai 18 2022 /usr/bin/ffmpeg
ls -l /var/log | grep log2 
drwxrwxrwx 2 root root 4096 mai 5 04:11 log2
pid ffmpeg $! = 74683
exit



When crontab of an ordinary user launches the script, it works correctly :


$DISPLAY = 
whoami an
pwd /home/an
$USER = 
PATH /usr/bin:/bin
which ffmpeg /usr/bin/ffmpeg
whereis ffmpeg ffmpeg: /usr/bin/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz
ls -l /usr/bin/* | grep ffmpeg 
-rwxr-xr-x 1 root root 284976 mai 18 2022 /usr/bin/ffmpeg
ls -l /var/log | grep log2 
drwxrwxrwx 2 root root 4096 mai 5 05:05 log2
pid ffmpeg $! = 77601
exit



I have tried to put into the script :


export DISPLAY=":0"


export DISPLAY=":0.0"


export DISPLAY=":1"