
Recherche avancée
Autres articles (65)
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)
Sur d’autres sites (6324)
-
Download multiple files with ffmpeg, keep one stream from each (according to default stream selection), and then mux them into single file ?
23 août 2021, par BernardWith ffmpeg, I can download m3u8 streams with the following command :


ffmpeg -i http://example.com/test.m3u8 -c copy output.mp4



The above command will keep the best quality video and audio (to some definition of 'best').


However, I'm faced with a situation where I have several m3u8 streams, all of them possibly containing zero or more video or audio streams. I would like to take at most one video and audio from each url (according to ffmpeg's definition of 'best'), and mux them together into the final mp4 file.


This is essentially what I want :


ffmpeg -i http://example.com/test0.m3u8 -c copy output0.mp4
ffmpeg -i http://example.com/test1.m3u8 -c copy output1.mp4
ffmpeg -i http://example.com/test2.m3u8 -c copy output2.mp4
ffmpeg -i output0.mp4 -i output1.mp4 -i output2.mp4 -map 0 -map 1 -map 2 -c copy output.mp4



Is there any way to do it without the temporary files ?


-
When downloading HLS video with FFMPEG it does not download the audio
3 août 2021, par Thiago FranklinI have a problem, when I try to download an HLS video with FFMPEG, it downloads the video track, but it doesn't find the AUDIO. When running the HLS .m3u8 file in a player, it plays normally, audio and video, but when trying to download, it shows an error message saying that the audio cannot be found.


I'm running the following command :


ffmpeg.exe -i "https://teste-etv.espiritismo.tv/437602.m3u8" -codec:a libmp3lame -b:a 96k teste-hls.mp3


Displays the following error when trying to download the audio :


[hls @ 0000021b5d9ad940] Skip ('#EXT-X-VERSION:3')
[hls @ 0000021b5d9ad940] Skip ('#EXT-X-INDEPENDENT-SEGMENTS')
[hls @ 0000021b5d9ad940] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-1080p.m3u8' for reading
[hls @ 0000021b5d9ad940] Skip ('#EXT-X-VERSION:3')
[https @ 0000021b5e10ee00] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-720p.m3u8' for reading
[hls @ 0000021b5d9ad940] Skip ('#EXT-X-VERSION:3')
[https @ 0000021b5e10ee00] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-540p.m3u8' for reading
[hls @ 0000021b5d9ad940] Skip ('#EXT-X-VERSION:3')
[https @ 0000021b5e10ee00] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-360p.m3u8' for reading
[hls @ 0000021b5d9ad940] Skip ('#EXT-X-VERSION:3')
[hls @ 0000021b5d9ad940] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-1080p_00001.ts' for reading
[hls @ 0000021b5d9ad940] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-1080p_00002.ts' for reading
[hls @ 0000021b5d9ad940] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-720p_00001.ts' for reading
[hls @ 0000021b5d9ad940] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-720p_00002.ts' for reading
[hls @ 0000021b5d9ad940] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-540p_00001.ts' for reading
[hls @ 0000021b5d9ad940] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-540p_00002.ts' for reading
[hls @ 0000021b5d9ad940] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-360p_00001.ts' for reading
[hls @ 0000021b5d9ad940] Opening 'https://appsetv.b-cdn.net/hls/437602/437602-360p_00002.ts' for reading
[hls @ 0000021b5d9ad940] Could not find codec parameters for stream 1 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp): unspecified sample rate
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[hls @ 0000021b5d9ad940] Could not find codec parameters for stream 3 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp): unspecified sample rate
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[hls @ 0000021b5d9ad940] Could not find codec parameters for stream 5 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp): unspecified sample rate
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[hls @ 0000021b5d9ad940] Could not find codec parameters for stream 7 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp): unspecified sample rate
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, hls, from 'https://appsetv.b-cdn.net/hls/437602/437602.m3u8':
 Duration: 00:01:41.00, start: 2.083333, bitrate: 0 kb/s
 Program 0
 Metadata:
 variant_bitrate : 2509173
 Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 90k tbn, 48 tbc
 Metadata:
 variant_bitrate : 2509173
 Stream #0:1: Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp
 Metadata:
 variant_bitrate : 2509173
 Program 1
 Metadata:
 variant_bitrate : 1205957
 Stream #0:2: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 90k tbn, 48 tbc
 Metadata:
 variant_bitrate : 1205957
 Stream #0:3: Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp
 Metadata:
 variant_bitrate : 1205957
 Program 2
 Metadata:
 variant_bitrate : 1165600
 Stream #0:4: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 960x540 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 90k tbn, 48 tbc
 Metadata:
 variant_bitrate : 1165600
 Stream #0:5: Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp
 Metadata:
 variant_bitrate : 1165600
 Program 3
 Metadata:
 variant_bitrate : 656245
 Stream #0:6: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 90k tbn, 48 tbc
 Metadata:
 variant_bitrate : 656245
 Stream #0:7: Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp
 Metadata:
 variant_bitrate : 656245
Output #0, mp3, to 'teste-hls.mp3':
Output file #0 does not contain any stream



-
ffmpeg download mp3 in chunks slower than whole file
6 août 2021, par loretoparisiI'm programmatically downloading in Python mp3 file's as
wav
chunks, seeking at position withss
andt
withffmpeg
resulting in a sequence offfmpeg
commands

ffmpeg -i https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_5MG.mp3 -acodec pcm_s16le -ac 1 -ar 44100 -ss 0:08:55.780000 -t 0:01:00.000000 -sn -vn -y -f wav pipe:1
ffmpeg -i https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_5MG.mp3 -acodec pcm_s16le -ac 1 -ar 44100 -ss -ss 0:09:55.780000 -t 0:01:00.000000 -sn -vn -y -f wav pipe:1
ffmpeg -i https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_5MG.mp3 -acodec pcm_s16le -ac 1 -ar 44100 -ss -ss -ss 0:10:55.780000 -t 0:01:00.000000 -sn -vn -y -f wav pipe:1
...



executed via
concurrent.futures.ThreadPoolExecutor
in this way :

with concurrent.futures.ThreadPoolExecutor(max_workers=NTHREADS) as executor:
 for i,cmd in enumerate(process_list):
 futures.append(executor.submit(downloader.chunk_download,(cmd,i)))

 for future in concurrent.futures.as_completed(futures):
 try:
 completed.append(future.result())
 except Exception as e:print(e)
 completed.sort() 
 for k,c in enumerate(completed):
 if not k:
 waveform = c[1]
 else:
 waveform = np.append(waveform,c[1])



where
chunk_download
is concat the chunks into the whole waveform

def chunk_download(self,args):
 cmd=args[0]
 i=args[1]
 print('Downloading chunk n° %i' % i)

 print( ' '.join(cmd))
 process = subprocess.run(cmd,
 stdout=subprocess.PIPE,
 stderr=subprocess.PIPE,
 bufsize=10**8)
 #buffer, stderr = process.communicate()
 buffer = process.stdout
 stderr = process.stderr
 print('chunk n° %i DOWNLOADED' % i)
 # convert to signal
 chunk_waveform = np.frombuffer(buffer=buffer, dtype=np.uint16, offset=8*44)
 chunk_waveform = chunk_waveform.astype(self.dtype) 
 print(len(chunk_waveform)/44100) 

 return i,chunk_waveform



this works ok, but if I download the whole mp3, executing the command in
cmd
like :

ffmpeg -i https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_5MG.mp3 -acodec pcm_s16le -ac 1 -ar 44100 -sn -vn -y -f wav pipe:1



It will take less time than the concurrent chunks download for the same file length, while I would expect the opposite. Could be this related to
ffmpeg
threading option (param--thread
?). If not, why the concurrent chunks download operation is slower ?