
Recherche avancée
Autres articles (60)
-
Encodage et transformation en formats lisibles sur Internet
10 avril 2011MediaSPIP transforme et ré-encode les documents mis en ligne afin de les rendre lisibles sur Internet et automatiquement utilisables sans intervention du créateur de contenu.
Les vidéos sont automatiquement encodées dans les formats supportés par HTML5 : MP4, Ogv et WebM. La version "MP4" est également utilisée pour le lecteur flash de secours nécessaire aux anciens navigateurs.
Les documents audios sont également ré-encodés dans les deux formats utilisables par HTML5 :MP3 et Ogg. La version "MP3" (...) -
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 -
MediaSPIP : Modification des droits de création d’objets et de publication définitive
11 novembre 2010, parPar défaut, MediaSPIP permet de créer 5 types d’objets.
Toujours par défaut les droits de création et de publication définitive de ces objets sont réservés aux administrateurs, mais ils sont bien entendu configurables par les webmestres.
Ces droits sont ainsi bloqués pour plusieurs raisons : parce que le fait d’autoriser à publier doit être la volonté du webmestre pas de l’ensemble de la plateforme et donc ne pas être un choix par défaut ; parce qu’avoir un compte peut servir à autre choses également, (...)
Sur d’autres sites (9073)
-
ffmpeg output gives file not found error in python
20 octobre 2022, par Batuhan YılmazTrying to build an auto subtitled video generator in Python. But couldn't generate the subtitled video of the input video using ffmpeg. Getting an error saying there is no output.mp4. FileNotFoundError : [Errno 2] No such file or directory : 'C :\Users\batuh\Desktop\auto-multipage\output.mp4'


Can you help me out ? Full code is here : https://github.com/BatuhanYilmaz26/auto-sub-exp/blob/main/pages/02_up3.py


Here's the parts where I used ffmpeg :


def inferecence(loaded_model, uploaded_file, task):
 with open(f"{save_dir}/audio.mp3" , "wb") as f:
 f.write(uploaded_file.read())
 audio = ffmpeg.input(f"{save_dir}/audio.mp3")
 audio = ffmpeg.output(audio, f"{save_dir}/output.wav", acodec="pcm_s16le", ac=1, ar="16k")
 ffmpeg.run(audio, overwrite_output=True)
 if task == "Transcribe":
 options = dict(task="transcribe", best_of=5)
 results = loaded_model.transcribe(f"{save_dir}/output.wav", **options)
 vtt = getSubs(results["segments"], "vtt", 80)
 srt = getSubs(results["segments"], "srt", 80)
 lang = results["language"]
 return results["text"], vtt, srt, lang
 elif task == "Translate":
 options = dict(task="translate", best_of=5)
 results = loaded_model.transcribe(f"{save_dir}/output.wav", **options)
 vtt = getSubs(results["segments"], "vtt", 80)
 srt = getSubs(results["segments"], "srt", 80)
 lang = results["language"]
 return results["text"], vtt, srt, lang
 else:
 raise ValueError("Task not supported")
 
 results = inferecence(loaded_model, input_file, task)
 
 subprocess.run(shlex.split(f"ffmpeg -i {save_dir}/input.mp4 -i {save_dir}/output.wav -i transcript.srt -c:v copy -c:a copy -c:s copy -map 0:a -map 1:v -map 2:s -metadata:s:a:0 language={results[3]} -y {save_dir}/output.mp4"))
 #subprocess.run(shlex.split(f"ffmpeg -i {save_dir}/input.mp4 -vf {save_dir}/transcript.srt -y {save_dir}/output.mp4"))
 with open(os.path.join(os.getcwd(), "output.mp4"), "rb") as f:
 data = f.read()
 st.video(data)
 st.download_button(label="Download Subtitled Video",
 data=data,
 file_name="output.mp4")



sorry about the indentations


Logfile :


ffmpeg started on 2022-10-20 at 23:43:53
Report written to "ffmpeg-20221020-234353.log"
Command line:
ffmpeg -i C:UsersbatuhDesktopauto-multipagepageslocaloutput/input.mp4 -i C:UsersbatuhDesktopauto-multipagepageslocaloutput/output.wav -i transcript.srt -c:v copy -c:a copy -c:s copy -map 0:a -map 1:v -map 2:s -metadata:s:a:0 "language=eng" -y C:UsersbatuhDesktopauto-multipagepageslocaloutput/output.mp4 -report
ffmpeg version 4.2.3 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 9.3.1 (GCC) 20200523
 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
 libavutil 56. 31.100 / 56. 31.100
 libavcodec 58. 54.100 / 58. 54.100
 libavformat 58. 29.100 / 58. 29.100
 libavdevice 58. 8.100 / 58. 8.100
 libavfilter 7. 57.100 / 7. 57.100
 libswscale 5. 5.100 / 5. 5.100
 libswresample 3. 5.100 / 3. 5.100
 libpostproc 55. 5.100 / 55. 5.100
Splitting the commandline.
Reading option '-i' ... matched as input url with argument 'C:UsersbatuhDesktopauto-multipagepageslocaloutput/input.mp4'.
Reading option '-i' ... matched as input url with argument 'C:UsersbatuhDesktopauto-multipagepageslocaloutput/output.wav'.
Reading option '-i' ... matched as input url with argument 'transcript.srt'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-c:s' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:a'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '1:v'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '2:s'.
Reading option '-metadata:s:a:0' ... matched as option 'metadata' (add metadata) with argument 'language=eng'.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option 'C:UsersbatuhDesktopauto-multipagepageslocaloutput/output.mp4' ... matched as output url.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url C:UsersbatuhDesktopauto-multipagepageslocaloutput/input.mp4.
Successfully parsed a group of options.
Opening an input file: C:UsersbatuhDesktopauto-multipagepageslocaloutput/input.mp4.
[NULL @ 000001fba186b9c0] Opening 'C:UsersbatuhDesktopauto-multipagepageslocaloutput/input.mp4' for reading
[file @ 000001fba186c140] Setting default whitelist 'file,crypto'
C:UsersbatuhDesktopauto-multipagepageslocaloutput/input.mp4: No such file or directory



-
FFMPEG Executing Command Error (index entry 349 + TemporalOffset 1 = 350, which is out of bounds)
21 octobre 2022, par Marcelo Lopes NunesWhen I conversion file MXF using ffmpeg command :


fmpeg -y -i TEST.mxf -vcodec mpeg2video -b:v 50000k -minrate 50000k -maxrate 50000k -bufsize 20000k -g 15 -bf 2 -r 25 -s 1920x1080 -aspect 16:9 -top 1 -flags:v +ilme+ildct -vf yadif=1 -acodec pcm_s24le -map 0:0 -map 0:a -map 0:a -map 0:a -map 0:a -ar 48000 -ac 1 CONVERT.mxf


FFmpeg command Execution error index entry 349 + TemporalOffset 1 = 350, which is out of bounds below log.


libavutil 55. 78.100 / 55. 78.100
 libavcodec 57.107.100 / 57.107.100
 libavformat 57. 83.100 / 57. 83.100
 libavdevice 57. 10.100 / 57. 10.100
 libavfilter 6.107.100 / 6.107.100
 libavresample 3. 7. 0 / 3. 7. 0
 libswscale 4. 8.100 / 4. 8.100
 libswresample 2. 9.100 / 2. 9.100
 libpostproc 54. 7.100 / 54. 7.100
[mxf @ 0x560422b8bc20] index entry 349 + TemporalOffset 1 = 350, which is out of bounds
Guessed Channel Layout for Input Stream #0.1 : mono
Guessed Channel Layout for Input Stream #0.2: mono



So after this, the audio isn't synchronized with the movie.
I executed the same command with a lot of other MXFs it worked and I don't have the FFmpeg error in the log.


Mediainfo MXF below.


<track type="General">
 <videocount>1</videocount>
 <audiocount>2</audiocount>
 <othercount>3</othercount>
 <fileextension>mxf</fileextension>
 <format>MXF</format>
 XDCAM HD422
 1.3
 OP-1a
 Closed / Complete
 <filesize>91497029</filesize>
 <duration>14.000</duration>
 <overallbitrate>52284016</overallbitrate>
 <framerate>25.000</framerate>
 <framecount>350</framecount>
 <footersize>2629</footersize>
 <packagename>Source Package</packagename>
 0-00-00 00:00:00.000
 UTC 2022-10-19 10:23:49
 2022-10-19 11:23:49
 FFmpeg
 OP1a Muxer
 58.29.100.0.0
 58.29.100.0.0
 </track>
 <track type="Video">
 <streamorder>0</streamorder>
 <id>2</id>
 <format>MPEG Video</format>
 XDCAM HD422
 2
 4:2:2
 High
 Yes
 Default
 M=3, N=15
 Frame
 Frame
 <codecid>0D01030102046001-0401020201040300</codecid>
 <duration>14.000</duration>
 CBR
 <bitrate>50000000</bitrate>
 <width>1920</width>
 <height>1080</height>
 1920
 1080
 <pixelaspectratio>1.000</pixelaspectratio>
 <displayaspectratio>1.778</displayaspectratio>
 <framerate>25.000</framerate>
 <framecount>350</framecount>
 <colorspace>YUV</colorspace>
 <chromasubsampling>4:2:2</chromasubsampling>
 <bitdepth>8</bitdepth>
 <scantype>Interlaced</scantype>
 <scanorder>TFF</scanorder>
 Lossy
 <delay>0.000</delay>
 0.000
 00:00:00:00
 Group of pictures header
 Open
 Closed
 <streamsize>87500000</streamsize>
 <buffersize>2500608</buffersize>
 <extra>
 0
 8
 </extra>
 </track>
 <track type="Audio" typeorder="1">
 <streamorder>1</streamorder>
 <id>3</id>
 <format>PCM</format>
 Little
 Frame (AES)
 <codecid>0D01030102060300</codecid>
 <duration>14.000</duration>
 CBR
 <bitrate>1152000</bitrate>
 <channels>1</channels>
 <samplesperframe>1920</samplesperframe>
 <samplingrate>48000</samplingrate>
 <samplingcount>672000</samplingcount>
 <framerate>25.000</framerate>
 <framecount>350</framecount>
 <bitdepth>24</bitdepth>
 <delay>0.000</delay>
 No
 Container
 <streamsize>2016000</streamsize>
 0.02203
 <extra>
 0
 <locked>Yes</locked>
 <blockalignment>3</blockalignment>
 </extra>
 </track>



I researched this problem on ffmpeg.org and I found "This implies there's a VBR index with slices. Probably because of mxf->slice_count = 1 ;
Slices are MXF's way of indexing VBR combined with CBR." but I don't know how I fix this.


-
Why i get permission denied at docker ffmpeg execution
24 octobre 2022, par Daniel Richteri want to make small gifs (miniclip) from a mp4 video using ffmpeg with php script in aws ecs.


The whole configuration is working with the symfony built-in server. Now i put the controller into local docker and now i get the following permission denied error :


ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers built with gcc 11.2.1 
(Alpine 11.2.1_git20220219) 20220219 configuration: --prefix=/usr --enable-avfilter -- 
enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libpulse -- 
enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 -- 
enable-libtheora --enable-libv4l2 --enable-libdav1d --enable-lto --enable-postproc -- 
enable-pic --enable-pthreads --enable-shared --enable-libxcb --enable-librist --enable- 
libsrt --enable-libssh --enable-libvidstab --disable-stripping --disable-static -- 
disable-librtmp --enable-libaom --enable-libopus --enable-libsoxr --enable-libwebp -- 
enable-vaapi --enable-vdpau --enable-vulkan --enable-libdrm --disable-debug 
libavutil 57. 17.100 / 57. 17.100 
libavcodec 59. 18.100 / 59. 18.100 
libavformat 59. 16.100 / 59. 16.100 
libavdevice 59. 4.100 / 59. 4.100 
libavfilter 8. 24.100 / 8. 24.100 
libswscale 6. 4.100 / 6. 4.100 
libswresample 4. 3.100 / 4. 3.100 
libpostproc 56. 3.100 / 56. 3.100 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, 
from 'https://vendery-streaming.fra1.cdn.digitaloceanspaces.com/myvideo.mp4': Metadata: major_brand : isom minor_version : 512 
compatible_brands: isomiso2avc1mp41 
encoder : Lavf58.24.101 Duration: 00:18:10.37, start: 0.000000, 
bitrate: 3405 kb/s Stream #0:0[0x1](und): 
Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 540x960, 3331 kb/s, 30 
fps, 30 tbr, 15360 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] 
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, 
fltp, 69 kb/s (default) 
Metadata: handler_name : 
SoundHandler vendor_id : [0][0][0][0] /var/www/html/public/myimage.gif: Permission denied



What exactly tells me the error ? The folder
/var/www/html/public/
exists but isnt writable ?

The command from php i run the script is :


$output = shell_exec('/usr/bin/ffmpeg -y -ss 255 -t 4 -i '.$url.' -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 /var/www/html/public/'.$outputFile.' 2>&1');
echo $output;



any idea is welcome.


- 

- the user is wrong.
shell_exec('whoami');
gives me www-data, but why ?? My dockerfile have the following in :RUN chown -R root:root /var/www/html/public




docker-compose.yaml


symfony:
 mem_limit: 500M
 mem_reservation: 500M
 container_name: '${APP_NAME}-${APP_ENV}-backend'
 #environment:
 #- DATABASE_URL="mysql://${MYSQL_USER}:${MYSQL_PASS}@database/${MYSQL_DB}?serverVersion=mariadb-10.8.3"
 build:
 context: .
 target: symfony
 #restart: unless-stopped
 ports:
 - 8000:8000 #browser / container



- the user is wrong.