
Recherche avancée
Autres articles (66)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
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 ;
-
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)
Sur d’autres sites (11570)
-
Difference between MPEG-TS and RTP for H.264 (.mp4) video streaming ?
6 avril 2022, par CandySo I am trying to stream a H.264 (.mp4) video over ETHERNET using the ffmpeg tool. I have read a little about transport of H.264 video over ethernet and have learnt that there are two methods ; mpeg-ts and RTP (both over UDP). I have been able to stream the .mp4 video through both methods in ffmpeg (over localhost) and haven't noticed any difference in quality or latency as such. What is the difference in concept and efficiency between the two protocols for transportation of video ? Or am I mixing two different concepts ? Any help is appreciated !


-
problem in making HLS using ffmpeg problem
24 juin 2023, par AMZI have a function do run in background and create m3u8 for some videos : (I is running in background and updating some fields in django).


def convert_to_hls(episode):
 # Set the output directory for HLS files
output_dir = os.path.join(settings.MEDIA_ROOT, 'hls')
os.makedirs(output_dir, exist_ok=True)

# Set the input video file path
input_file_path = episode.videoFile.path

# Set the output filename and path for the HLS playlist
# filename = os.path.splitext(os.path.basename(input_file_path))[0]
characters = string.ascii_letters + string.digits
filename = ''.join(random.choice(characters) for _ in range(45))
playlist_path = os.path.join(output_dir, f'{filename}.m3u8')

# Set the output path for the HLS segments
segments_path = os.path.join(output_dir, f'{filename}_%05d.ts')

# Construct the ffmpeg command for HLS conversion
command = [
 'ffmpeg',
 '-i', input_file_path,
 '-c:v', 'libx264',
 '-crf', '23',
 '-preset', 'medium',
 '-c:a', 'aac',
 '-b:a', '128k',
 '-f', 'hls',
 '-hls_time', '10',
 '-hls_list_size', '0',
 '-hls_segment_filename', segments_path,
 playlist_path
]
# Execute the ffmpeg command
subprocess.run(command, check=True)

episode.hls_created = True
episode.hls_url = playlist_path.replace("/home/debian/project","")
episode.save()

return True



this code works well for most of my videos but for some .mp4 files gets :


[Fri Jun 23 17:05:47.511095 2023] [wsgi:error] [pid 19975:tid 140289048565504] Exception in thread Thread-1:
[Fri Jun 23 17:05:47.511198 2023] [wsgi:error] [pid 19975:tid 140289048565504] Traceback (most recent call last):
[Fri Jun 23 17:05:47.511244 2023] [wsgi:error] [pid 19975:tid 140289048565504] File "/opt/bitnami/python/lib/python3.8/threading.py", line 932, in _bootstrap_inner
[Fri Jun 23 17:05:47.512078 2023] [wsgi:error] [pid 19975:tid 140289048565504] self.run()
[Fri Jun 23 17:05:47.512124 2023] [wsgi:error] [pid 19975:tid 140289048565504] File "/opt/bitnami/python/lib/python3.8/threading.py", line 870, in run
[Fri Jun 23 17:05:47.512707 2023] [wsgi:error] [pid 19975:tid 140289048565504] self._target(*self._args, **self._kwargs)
[Fri Jun 23 17:05:47.512748 2023] [wsgi:error] [pid 19975:tid 140289048565504] File "/home/debian/project/twapp/views/episode_backgrounds.py", line 41, in convert_to_hls
[Fri Jun 23 17:05:47.512950 2023] [wsgi:error] [pid 19975:tid 140289048565504] subprocess.run(command, check=True)
[Fri Jun 23 17:05:47.512989 2023] [wsgi:error] [pid 19975:tid 140289048565504] File "/opt/bitnami/python/lib/python3.8/subprocess.py", line 516, in run
[Fri Jun 23 17:05:47.513500 2023] [wsgi:error] [pid 19975:tid 140289048565504] raise CalledProcessError(retcode, process.args,
[Fri Jun 23 17:05:47.513657 2023] [wsgi:error] [pid 19975:tid 140289048565504] subprocess.CalledProcessError: Command '['ffmpeg', '-i', '/home/debian/project/media/videos/introduction_to_raster_qBhrnAx.mp4', '-c:v', 'libx264', '-crf', '23', '-preset', 'medium', '-c:a', 'aac', '-b:a', '128k', '-f', 'hls', '-hls_time', '10', '-hls_list_size', '0', '-hls_segment_filename', '/home/debian/project/media/hls/ZN3fsJVEfTDEc8MFb5DrP7Y34JFNLj0hfWnGRZAwFdjuG_%05d.ts', '/home/debian/project/media/hls/ZN3fsJVEfTDEc8MFb5DrP7Y34JFNLj0hfWnGRZAwFdjuG.m3u8']' returned non-zero exit status 1.



Also it does not work for .MOV files.


-
FFmpeg doesn't play audio, yet no error shown
4 août 2023, par KristupasSo i'm learning Python and don't know much about FFmpeg. I am following a tutorial, which explains everything very clearly. Everything is working, with one exception. Whenever I try to get it to play a sound, it won't.. Here's what it is saying :


INFO discord.player ffmpeg process 2540 successfully terminated with return code of 1.


And here's my code (forgive me for all of the childish things in there, i'm just trying out different features) :



import discord
import discord.ext
from discord import FFmpegPCMAudio
from discord.ext import commands
import random


Token = "No token for you :)"
client = commands.Bot(command_prefix = '!', intents=discord.Intents.all())


@client.event
async def on_ready():
 print(f"we're rolling as {client.user} \n")
 channel = client.get_channel(1022535885851459727)
 await channel.send("Tremble before my might hoomans😤😤")

#Member events:

@client.event
async def on_member_join(member):
 await member.send("Ok comrade, welcome to bot lab, pls not leave. Anways here rules \n1. No swearing \n2. No cursing \n3. No bullying, the owner is a crybaby \n4. No following the rules (u get banned if this one is broken)")
 channel = client.get_channel(1136658873688801302)
 jokes = [f"A failure known as {member} has joined this chat!", 
 f"Another {member} has joined the channel", 
 f"A {member} spawned", 
 f'cout << "{member} has joined teh chat" << endl;', 
 f"OUR great {member} has come to save us" ]
 await channel.send(jokes[random.randint(0,len(jokes))])

@client.event 
async def on_member_remove(member):
 await member.send("Bye our dear comrade")
 channel = client.get_channel(1136663317738442752)
 await channel.send(f"{member} has left the chat :(.)")

#Client commands:
 
@client.command()
async def hello(ctx):
 await ctx.send("Hello, I am pro bot")

@client.command()
async def byelol(ctx):
 await ctx.send("Bye, I am pro bot")
@client.command()
async def ping(ctx):
 await ctx.send(f"**pong** {ctx.message.author.mention}")


@client.event
async def on_message(message):
 message.content = message.content.lower()
 await client.process_commands(message)


#voice channel commands:

@client.command(pass_context = True)
async def micup(ctx):
 if (ctx.author.voice):
 await ctx.send(f"Joining on {ctx.message.author}'s command")
 channel = ctx.message.author.voice.channel
 voice = await channel.connect()
 source = FFmpegPCMAudio('Bluetooth.wav')
 player = voice.play(source)
 
 
 
 else:
 await ctx.send("No.")



@client.command(pass_Context = True)
async def leave(ctx):
 if (ctx.voice_client):
 await ctx.send(f"Leaving on {ctx.message.author}'s command")
 await ctx.guild.voice_client.disconnect()
 else:
 await ctx.send("Nyet. Im not in voice chat u stoopid hooman")


@client.command(pass_Context = True)
async def pause(ctx):
 voice = discord.utils.get(client.voice_clients, guild = ctx.guild)
 if voice.is_playing():
 await ctx.send("Pausing..⏸")
 voice.pause()
 else:
 await ctx.send("I don't think I will.")

@client.command(pass_Context = True)
async def resume(ctx):
 voice = discord.utils.get(client.voice_clients, guild = ctx.guild)
 if voice.is_paused():
 await ctx.send("My ears are bleeding")
 voice.resume()
 else:
 await ctx.send("ALREADY BLASTING MUSIC")

@client.command(pass_Context = True)
async def stop(ctx):
 voice = discord.utils.get(client.voice_clients, guild = ctx.guild)
 await ctx.send("You can stop the song, but you can't stop me!")
 voice.stop()

@client.command(pass_Context = True)
async def play(ctx, arg):
 await ctx.send("Playing..")
 voice = ctx.guild.voice_client
 source = FFmpegPCMAudio(arg)
 player = voice.play(source)

if '__main__' == __name__:
 client.run(Token)



I tried installing different versions of ffmpeg, still nothing. I tried to run the code outside of my venv, but still nothing (i doubt that it's the problem). I changed the path to it to different folders, still nothing.
The only time it DID work is when i entered a full path, but then when you want to play something, you wouldn't want to say " !play D:_Python\DiscordBot\Bluetooth.wav". From what i've seen, it's possible to play it by just saying " !play Bluetooth.wav".


So long story short : I want to make it so that the path i have to specify is just the file name. And when I do, it doesn't play the sound.
(sorry if this is a dupe question, i just couldn't find anything understandable for my amateur brain)