
Recherche avancée
Médias (1)
-
Revolution of Open-source and film making towards open film making
6 octobre 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (68)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
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 -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (11230)
-
Why AudioSegment doesn't read 'mp3' ?
22 octobre 2020, par freshITmeatI tried to read file that I give with absolute path.
When I run my code first that I see is this message :


D:\prog\datascience\anaconda\lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
 warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)



I tried this :


PATH_TO_FFMPEG = 'D:\\prog\\ffmpeg-win-2.2.2\\ffmpeg.exe'
pydub.AudioSegment.converter = r'D:\\prog\\ffmpeg-win-2.2.2\\ffmpeg.exe'



And I separately installed
ffmpeg
withpip
. But it didn't help.
When I try this :

raw_sound = pydub.AudioSegment.from_mp3(file=track_path)



where
track_path
is correct absolute path generated automatically.
So I got this this error :

Traceback (most recent call last):
 File "D:\prog\PyCharm Community Edition 2020.2.2\plugins\python-ce\helpers\pydev\pydevd.py", line 1448, in _exec
 pydev_imports.execfile(file, globals, locals) # execute the script
 File "D:\prog\PyCharm Community Edition 2020.2.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
 exec(compile(contents+"\n", file, 'exec'), glob, loc)
 File "D:/testtask2/test_task/testtask/get_mffc.py", line 165, in <module>
 slice_all_in_a_dir('May 27 2020 LNC/Hydrophone 1/raw_records')
 File "D:/testtask2/test_task/testtask/get_mffc.py", line 70, in slice_all_in_a_dir
 slice_samples(track_path= [file],
 File "D:/testtask2/test_task/testtask/get_mffc.py", line 48, in slice_samples
 raw_sound = pydub.AudioSegment.from_mp3(file=track_path)
 File "D:\prog\datascience\anaconda\lib\site-packages\pydub\audio_segment.py", line 738, in from_mp3
 return cls.from_file(file, 'mp3', parameters=parameters)
 File "D:\prog\datascience\anaconda\lib\site-packages\pydub\audio_segment.py", line 680, in from_file
 stdin_data = file.read()
AttributeError: 'list' object has no attribute 'read'
python-BaseException
</module>


Full code when I use it :


def slice_samples(track_path: list, save_path: str,
 sample_folder_name: str, interval: float, given_format, name: str = "part", export_format = 'wav'):
 """
 This metod slice given track to parts.
 :param track_path: str, a path to the track you want to slice
 :param save_path: str, a path to folder, where you want save sliced tracks
 :param sample_folder_name: str, you don't need to create a folder for sliced tracks,
 you can just write the name of the folder in this argument where you want to save tracks
 :param interval: float, measure in seconds, the length of sliced tracks
 :param name: str, name of sliced tacks
 :param given_format: str, I strongly recommend use .wav format initially, when you record sounds
 :return: folder with sliced tracks
 """

 # it cuts a file in mp3 or wav formats (wav recommended)

 interval_secs = interval * 10 ** 3
 raw_sound = None
 if given_format == "WAV":
 raw_sound = pydub.AudioSegment.from_wav(file=track_path)
 elif given_format == "MP3":
 raw_sound = pydub.AudioSegment.from_mp3(file=track_path)
 else:
 raise Exception("It's temporarily unsupported given_format: " + given_format)
 start = 0
 end = interval_secs
 i = 0
 while end < len(raw_sound):
 save_to = save_path + sample_folder_name + "/" + name + str(i)
 part = raw_sound[start:end]
 part.export(save_to, format=export_format)
 i += 1
 start += interval_secs
 end += interval_secs
 return save_path + sample_folder_name

def slice_all_in_a_dir(tracks_folder: str):
 files = os.listdir(tracks_folder)
 for file in files:
 folder_name = file.split('.')
 f_name = folder_name[0]
 file = tracks_folder+'/'+file
 file = os.path.abspath(file)
 slice_samples(track_path= [file],
 save_path= PATH_FOR_SLICED,
 sample_folder_name= f_name,
 interval=5,
 given_format=folder_name[1])

if __name__ == "__main__":
 slice_all_in_a_dir('May 27 2020 LNC/Hydrophone 1/raw_records')



-
Laravel FFMpeg - FFMpeg cannot edit existing files in-place
28 septembre 2020, par wlaskovicAfter I wanted to upload a video in the queue was returned a failed job.


[2020-09-25 13:24:25][125] Processing: App\Jobs\ConvertVideoForStreaming <br /> [2020-09-25 13:24:26][125] Failed: App\Jobs\ConvertVideoForStreaming



So I've took from the DB failed_jobs table the response and run the following :


C:\ffmpeg\bin\ffmpeg.exe -y -i "C:\wamp64\www\laravel-stream\storage\app/public\WF3UL8fJTSE7BMxa.mp4" -threads 12 -vcodec libx264 -acodec libmp3lame -b:v 500k -refs 6 -coder 1 -sc_threshold 40 -flags +loop -me_range 16 -subq 7 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -trellis 1 -b:a 128k -vf "[in]scale=720:360 [out]" -pass 1 -passlogfile "C:\Users\wlask\AppData\Local\Temp\ffmpeg-passes5f6dd36a4519fd1fev/pass-5f6dd36a452c9" "C:\wamp64\www\laravel-stream\storage\app/public\WF3UL8fJTSE7BMxa.mp4"



Which returned the following :


ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 10.2.1 (GCC) 20200726
 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-libsrt --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-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\wamp64\www\laravel-stream\storage\app/public\WF3UL8fJTSE7BMxa.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: mp42mp41isomavc1
 creation_time : 2015-08-07T09:13:02.000000Z
 Duration: 00:00:30.53, start: 0.000000, bitrate: 411 kb/s
 Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x270 [SAR 1:1 DAR 16:9], 301 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default)
 Metadata:
 creation_time : 2015-08-07T09:13:02.000000Z
 handler_name : L-SMASH Video Handler
 encoder : AVC Coding
 Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 112 kb/s (default)
 Metadata:
 creation_time : 2015-08-07T09:13:02.000000Z
 handler_name : L-SMASH Audio Handler





Output C :\wamp64\www\laravel-stream\storage\app/public\WF3UL8fJTSE7BMxa.mp4 same as Input #0 - exiting


FFmpeg cannot edit existing files in-place.




This was returned after i've run the command from DB failed jobs table return.


How should I solve this ?


-
FFmpeg return 'invalid argument' only for some runs, even tought is the same code
20 septembre 2021, par Gustavo MarinhoI have a code in python where i need to use FFmpeg to merge a audio and a video downloaded using pytube together :


for video in p.videos:
 video.streams.filter(file_extension='mp4',resolution='480p')[0].download(parent_dir+'/mp4/processing/video')
 print(video.streams.filter(only_audio=True)[1].download(parent_dir+'/mp4/processing/audio'))

 subprocess.run([

 r'c:\FFmpeg\bin\ffmpeg', '-i',
 os.path.join(parent_dir+'/mp4/processing/video',video.streams.filter(file_extension='mp4',resolution='480p')[0].default_filename)
 ,'-i',
 os.path.join(parent_dir+'/mp4/processing/audio',video.streams.filter(only_audio=True)[1].default_filename),
 '-c:v','copy','-c:a','copy',
 os.path.join(parent_dir+'/mp4',video.streams.filter(file_extension='mp4',resolution='480p')[0].title+'.mp4')

 ])



I tought the code was working perfectly, but in some cases, the FFmpeg returns "invalid argument", like this example :


ffmpeg version 4.4-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
 built with gcc 10.2.0 (Rev6, 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-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --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-libmfx --enable-libglslang --enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
 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, mov,mp4,m4a,3gp,3g2,mj2, from 'D:/videos/mp4/processing/video\Dropkick Murphys - Rose Tattoo (Video).mp4':
 Metadata:
 major_brand : dash
 minor_version : 0
 compatible_brands: iso6avc1mp41
 creation_time : 2020-04-04T10:16:52.000000Z
 Duration: 00:05:26.08, start: 0.000000, bitrate: 557 kb/s
 Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 854x480 [SAR 1:1 DAR 427:240], 7 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
 Metadata:
 creation_time : 2020-04-04T10:16:52.000000Z
 handler_name : ISO Media file produced by Google Inc.
 vendor_id : [0][0][0][0]
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'D:/videos/mp4/processing/audio\Dropkick Murphys - Rose Tattoo (Video).mp4':
 Metadata:
 major_brand : dash
 minor_version : 0
 compatible_brands: iso6mp41
 creation_time : 2020-04-04T10:16:00.000000Z
 Duration: 00:05:26.12, start: 0.000000, bitrate: 129 kb/s
 Stream #1:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 3 kb/s (default)
 Metadata:
 creation_time : 2020-04-04T10:16:00.000000Z
 handler_name : ISO Media file produced by Google Inc.
 vendor_id : [0][0][0][0]
D:/videos/mp4\Dropkick Murphys - "Rose Tattoo" (Video).mp4: Invalid argument



For some reason, the FFmpeg say that my output name is invalid, but i don't understand why, given that i ran the code multiple times before and it worked perfectly


Thanks in advance, sorry for my bad english :3