
Recherche avancée
Médias (91)
-
#3 The Safest Place
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#4 Emo Creates
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#2 Typewriter Dance
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#1 The Wires
11 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
ED-ME-5 1-DVD
11 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
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 (31)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Mise à disposition des fichiers
14 avril 2011, parPar défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)
Sur d’autres sites (6520)
-
2enc : clip and warn when user bitrate set too low
28 février 2016, par Rostislav Pehlivanov -
After upgrade ffmpeg code doesn't working clip build
11 février, par TchouneI have a problem after upgrading ffmpeg from 4.2.2 to 5.2.2, my code no longer works. When I upload a video to my React-Native application I get a file corruption error on my FFmpeg python agent.
-> sends to Laravel which stores the video on the minio storage ; the video is available -> sends http to the minio key to download locally the mp4 video is corrupted on the minio too...
I have the impression that it's an error downloading the video locally that makes the video corrupt, but I have no idea how I can debug this problem.
If I upload the video directly from my web interface I don't have this problem. The only difference is processClipSynchronously which is set to True on mobile and False on web.


Laravel Agent send to python microservice :


// Store uploaded video file
 $videoFilePath = $this->storeVideoFile($learningGoal, $videoFile);

 // Add video to storyboard
 $agentResponse = Http::post($this->agentUrl . 'learning-goals/' . $learningGoal->id . '/storyboards/' . $storyboardId . '/chapters/' . $chapterId . '/videos',
 [
 'clip' => $videoFilePath,
 'processClipSynchronously' => $processClipSynchronously
 ]);



Python agent video :


@app.route('/learning-goals//storyboards//chapters//videos',
 methods=['post'])
def post_storyboard_videos(learning_goal_id, storyboard_id, chapter_id):
 storyboard = get_storyboard(learning_goal_id, storyboard_id)
 chapter, position = get_chapter(storyboard, chapter_id)

 if 'clip' in request.get_json():
 chapter['clip'] = request.get_json()['clip']
 if 'duration' in storyboard:
 del chapter['duration']
 if 'thumbnail' in storyboard:
 del chapter['thumbnail']
 if 'ncAudioPreviewPath' in chapter:
 del chapter['ncAudioPreviewPath']
 if 'trim_start' in chapter:
 del chapter['trim_start']
 if 'trim_end' in chapter:
 del chapter['trim_end']
 if 'perform_nc' in chapter:
 del chapter['perform_nc']
 else:
 abort(400)

 new_storyboard = create_new_version_storyboard(storyboard)

 if 'processClipSynchronously' in request.get_json() and request.get_json()['processClipSynchronously']:
 treat_clip(new_storyboard, chapter) #Mobile trigger here
 else:
 thread = StoppableThread(target=treat_clip, args=(new_storyboard, chapter))
 thread.daemon = True
 thread.start()

 chapter, position = get_chapter(new_storyboard, chapter_id)

 return json.loads(dumps(chapter))

def treat_clip(storyboard, chapter):
 logging.info(
 'start treating clip (' + chapter['clip'] + ') for learning goal : ' + str(storyboard['learningGoalId']))
 file = app.config['VOLUME_PATH'] + chapter['clip']
 os.makedirs(dirname(file), exist_ok=True)
 temp_files_to_remove = []

 if not os.path.exists(file):
 # Download file from S3 storage.
 s3.download_file(chapter['clip'], file)
 # Clean the file at the end (it's already in S3).
 temp_files_to_remove.append(file)
 else:
 logging.warn(f'Not downloading {chapter["clip"]} from S3 as it already exists on the filesystem')

 resolution_width, resolution_height = get_resolution(file)
 is_rotated_video = is_rotated(file)
 sample_aspect_ratio = get_sample_aspect_ratio(file)
 frame_rate = get_frame_rate(file)
 if not file.endswith(
 '.mp4') or resolution_width != 1920 or resolution_height != 1080 or is_rotated_video or sample_aspect_ratio != '1:1' or frame_rate > 60:
 chapter['clip'] = format_video(chapter['clip'], resolution_width, resolution_height, frame_rate,
 is_rotated_video, str(storyboard['learningGoalId']), 1920, 1080)
 file = app.config['VOLUME_PATH'] + chapter['clip']

 # Update file to S3 storage
 s3.upload_file(file, chapter['clip'])

 # Clean the new file at the end.
 temp_files_to_remove.append(file)

 clip = VideoFileClip(file)
 chapter['duration'] = float(clip.duration)
 thumbnail_relative_path = create_video_thumbnail(storyboard, clip, 0)
 ....



It's VideoFileClip from moviepy who generate error : Moov atom not found
I think S3 not have time to download file, and corrumpt, but I don't know how to test or fix that


thanks in advance


-
Terminal prompt disappears after asyncio script with ffmpeg writing things is run
8 avril 2022, par David II've followed a simple example https://docs.python.org/3/library/asyncio-task.html#running-tasks-concurrently in trying to learn the basics of asyncio.


It works as expected with most commands however when employed with three ffmpeg commands that take an input and write an output, see the example below, the terminal window prompt becomes invisible after the script has (seemingly successfully run). It responds to typed commands and shows the result but the input isn't shown until I start a new terminal session. It's the same with Code's bash terminal as with Kitty.


It doesn't seem to be a "write to file system concurrantly" problem as the echo lines don't produce the problem. The ffprobe commands don't produce it either but "command1" and 2 and 3 always do. It's the same with other ffmpeg commands that write to the file system via a conversion or a split of an audio input file.


The processes exit with 0 and ffmpeg issues most output to stderr so the output looks like




['ffmpeg -y -i "01 Dia Artio.m4a" "oof1.wav"' exited with 0]
[stderr]
ffmpeg version N-104926-gc8b5f2848d Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (GCC)...




import asyncio

async def run(cmd):
 proc = await asyncio.create_subprocess_shell(
 cmd,
 stdout=asyncio.subprocess.PIPE,
 stderr=asyncio.subprocess.PIPE)

 stdout, stderr = await proc.communicate()
 print(f'[{cmd!r} exited with {proc.returncode}]')
 print(f'[stderr]\n{stderr.decode()}')

async def main():
 # Schedule three calls *concurrently*:
 command1 = "ffmpeg -y -i '01 Dia Artio.m4a' 'oof1.wav'"
 command2 = "ffmpeg -y -i '03 Cleansing.m4a' 'oof3.wav'"
 command3 = "ffmpeg -y -i 'The Cranberries - 10 - Dreaming My Dreams.flac' 'oof2.wav'"

 cat1 = "echo 'cat' > cat.txt"
 cat2 = "echo 'kitteh' > kat.txt"
 cat3 = "echo 'eirlyss' > eirlyss.txt"

 ffprobe1 = "ffprobe oof1.wav"
 ffprobe2 = "ffprobe oof2.wav"
 ffprobe3 = "ffprobe oof1.wav"
 await asyncio.gather(
 run(command1),
 run(command2),
 run(command3)
 )
 
 
asyncio.run(main())



This problem has only happened with this combination of asyncio and ffmpeg and it appears consistent and I would very much like to know what might be the cause of it.


I'm on Fedora 35 with Python 3.10.4 and a self built (via ffmpegs instructs) ffmpeg from a few months back).