
Recherche avancée
Autres articles (88)
-
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...) -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...) -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)
Sur d’autres sites (10576)
-
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


-
avcodec/cbs_h266 : Fix regression in DVB clip introduced by 93281630a71c06642adfebebb0...
10 novembre 2024, par Nuo Miavcodec/cbs_h266 : Fix regression in DVB clip introduced by 93281630a71c06642adfebebb0d4b105a4e02e91
This commit introduced a regression to VVC_HDR_UHDTV1_OpenGOP_3840x2160_50fps_HLG10_mosaic.ts.
Root Cause :
The AV_CEIL_RSHIFT(a, b) macro uses bit tricks that work only when -a is a negative value.
However, due to integer promotion rules, this behavior does not extend to the unsigned int type.See "6.3.1.1 Boolean, characters, and integers" in the "ISO/IEC 9899" for details.
Reported-by : Frank Plowman <post@frankplowman.com>
-
avformat/concatdec : clip outpoint - inpoint overflow in get_best_effort_duration()
26 décembre 2023, par Michael Niedermayeravformat/concatdec : clip outpoint - inpoint overflow in get_best_effort_duration()
An alternative would be to limit all time/duration fields to below 64bit
Fixes : signed integer overflow : -93000000 - 9223372036839000000 cannot be represented in type 'long long'
Fixes : 64546/clusterfuzz-testcase-minimized-ffmpeg_dem_CONCAT_fuzzer-5110813828186112Found-by : continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>