Recherche avancée
Autres articles (69)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
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 (...) -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (8427)
-
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.