
Recherche avancée
Autres articles (111)
-
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 (13978)
-
ffmpeg_kit_flutter operation not permitted for audio operations
25 août 2023, par Black Eyed BeansI'm trying to trim an audio file using
ffmpeg_kit_flutter
but I keep getting the error :

audio/path/output.mp3: Operation not permitted.



This is the ffmpeg command that I'm using :


final cmd="-y -i \"$audioPath\" -ss $audioStartTime -to $audioEndTime -c:a libmp3lame $outPutName";



And I've also tried :


final cmd="-y -i \"$audioPath\" -ss $audioStartTime -to $audioEndTime -c copy $outPutName";



But the error is still the same.
I'm using the
ffmpeg_kit_flutter_full_gpl
package.

-
Combining multiple image files into a video while using filter_complex to apply a watermark
14 décembre 2017, par GeuisI’m trying to combine two ffmpeg operations into a single one.
Currently I have two sets of ffmpeg commands that first generate a video from existing images, then runs that video through ffmpeg again to apply a watermark.
I’d like to see if its possible to combine these into a single operation.
# Create the source video
ffmpeg -y \
-framerate 1/1 \
-i layer-%d.png \
-r 30 -vcodec libx264 -preset ultrafast -crf 23 -pix_fmt yuv420p \
output.mp4
# Apply the watermark and render the final output
ffmpeg -y \
-i output.mp4 \
-i logo.png \
-filter_complex "[1:v][0:v]scale2ref=40:40[a][b];[b][a]overlay=(80):(main_h-200-80)" \
final.mp4 -
How to extract audio from a video in Flutter ?
14 janvier, par Mohammed BekeleI have an image picker in Flutter to get the video from the device, and then I created a function to extract the audio using ffmpeg_kit_flutter package.


Future<void> _convertVideoToAudio() async {
 if (_pickedVideo != null) {
 bool? permissionGranted = await _requestStoragePermission();
 if (permissionGranted != true) {
 print("Storage permission denied.");
 return;
 }

 String videoPath = _pickedVideo!.path;
 _outputPath = await getOutputFilePath(); // Get platform-specific path

 try {
 // Ensure the output directory exists
 await Directory(path.dirname(_outputPath)).create(recursive: true);

 await FFmpegKit.execute(
 "-i $videoPath -vn -c:a libmp3lame -q:a 2 $_outputPath"); // FFmpeg command
 print("Video converted to audio successfully!");
 _showSuccessDialog(); // Display success dialog

 try {
 final String fileName = path.basename(_outputPath);
 final transcription =
 await _sendAudioForTranscription(_outputPath, fileName);

 if (transcription != null) {
 setState(() {
 _transcription = transcription;
 });
 } else {
 setState(() {
 _transcription = "Transcription failed";
 });
 }
 } catch (e) {
 print('Error in transcription request: $e');
 setState(() {
 _transcription = "Network request failed";
 });
 }
 } catch (e) {
 print("Error converting video: $e");
 _showErrorDialog(); // Display error dialog
 } finally {
 setState(() {
 _pickedVideo = null; // Clear selected video
 });
 }
 } else {
 print("Please pick a video first.");
 }
 }
</void>


and for getting the path I have this function


Future<string> getOutputFilePath() async {
 final directory = await getApplicationDocumentsDirectory();
 final downloadsDirectory = Directory('${directory.path}/downloads');
 if (!(await downloadsDirectory.exists())) {
 await downloadsDirectory.create(recursive: true);
 }
 final String fileName = path
 .basename(_pickedVideo!.path)
 .replaceAll('.mp4', '.mp3'); // Replace extension
 final filePath = '${downloadsDirectory.path}/$fileName';
 return filePath;
 }
</string>


but this is not working somehow. Because after I get the audio I'm uploading it to a server with http, then it displays that there is no path where the audio supposed to be.