
Recherche avancée
Autres articles (106)
-
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 (...) -
(Dés)Activation de fonctionnalités (plugins)
18 février 2011, parPour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...) -
Participer à sa traduction
10 avril 2011Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
Actuellement MediaSPIP n’est disponible qu’en français et (...)
Sur d’autres sites (14286)
-
Why are rectangular boxes ([]) showing instead of text in burned subtitles when using ffmpeg/MoviePy on Google Colab ?
14 mai, par LavishI'm working on a Python script that adds subtitles to a video using MoviePy and burns/hardcodes them directly onto the video. The subtitles contain Hindi text, and I’ve specified a custom font that supports Devanagari (Hindi) script.


The code works perfectly fine on my local machine, the subtitles appear correctly with Hindi characters. However, when I run the same code on Google Colab, the subtitles display as rectangular boxes (something like this -> [][][]) instead of proper characters.


Things I've tried :


- 

- Ensured the font used supports Hindi (I'm using NotoSansDevanagari-Regular.ttf renamed as font.ttf).
- Uploaded the font to Colab and specified the full path correctly.
- Verified that the text is passed as a proper Unicode string.








Here's the code snippet :


def add_subtitles(video_path, subtitles_path, output_path):
 """Adds subtitles using FFmpeg with proper path escaping."""
 # Convert to absolute paths and normalize
 
 video_path = os.path.abspath(video_path)
 subtitles_path = os.path.abspath(subtitles_path)
 output_path = os.path.abspath(output_path)


 # Subtitle path
 font_path = "input_files/font.ttf"
 font_path = os.path.abspath(font_path).replace("\\", "\\\\")
 subtitles_path_escaped = os.path.abspath(subtitles_path).replace("\\", "\\\\")
 
 # Escape backslashes in paths
 subtitles_path = subtitles_path.replace("\\", "\\\\")
 # Remove all files in final_videos
 [os.remove(os.path.join(base_dir, "final_videos", f)) for f in os.listdir(os.path.join(base_dir, "final_videos")) if os.path.isfile(os.path.join(base_dir, "final_videos", f))]

 os.makedirs(os.path.dirname(output_path), exist_ok=True)
 escaped_path = subtitles_path.replace(':', '\\:').replace('\\', '\\\\')

 cmd = [
 "ffmpeg",
 "-i", video_path,
 "-vf", f"subtitles={escaped_path}:force_style='FontFile={font_path}'",
 "-c:v", "libx264",
 "-c:a", "copy",
 "-preset", "fast",
 "-crf", "22",
 output_path
]


 # Debug: Print the exact command being executed
 print("Executing:", " ".join(cmd))
 try:
 subprocess.run(cmd, check=True, capture_output=True, text=True)
 print(f"✅ Success! Output saved to: {output_path}")
 except subprocess.CalledProcessError as e:
 print(f"❌ FFmpeg failed with error:\n{e.stderr}")




What could be causing this issue on Colab, and how can I get non-English subtitles (like Hindi) to render properly when burning subtitles using MoviePy/ffmpeg in a Colab environment ?


-
Can ffmpeg copy metadata/ID3 from FLAC to MP3 ?
9 avril 2019, par krypterroI have a bit of Python code that loops through audio files, finds .FLAC files, and then uses the Python subcommand to run ffmpeg. It works. The audio is fine, but even though I see the metadata in the shell, it doesn’t transfer the data to the ID3 tags in the MP3, and I am using the example found in the previous post here. Here’s the command :
cmd = 'ffmpeg -y -i "' + src + '" -codec:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 "' + dst + '"'
Which works out to :
ffmpeg -y -i "source.flac" -codec:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 "destination.mp3"
And here is the log dump :
/usr/local/bin/python3.7 /home/krypterro/PycharmProjects/mediaman/RipFLAC.py
1 Music Files Found
2019-04-09 14:32:47.758 | INFO | __main__:main:31 - Start of program
2019-04-09 14:32:48.110 | DEBUG | __main__:ripmp3:206 - Running Command: ffmpeg -y -i "/home/krypterro/audio/music_in/Visions/01-grimes-laughing_and_not_being_normal.flac" -acodec libmp3lame -ab 192000 "/home/krypterro/audio/music_out/Visions/01-grimes-laughing_and_not_being_normal.mp3"
ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
WARNING: library configuration mismatch
avcodec configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, flac, from '/home/krypterro/audio/music_in/Visions/01-grimes-laughing_and_not_being_normal.flac':
Metadata:
ARTIST : Grimes
TITLE : Laughing And Not Being Normal
ALBUM : Art Angels
DATE : 2015
track : 1
GENRE : Electronic
disc : 1
TOTALDISCS : 1
TOTALTRACKS : 15
LANGUAGE : English
RIP DATE : 2015-12-12
RETAIL DATE : 2015-00-00
MEDIA : CD
ENCODER : FLAC 1.2.1 -8 -V
RIPPING TOOL : EAC 1.0 Beta 3
RELEASE TYPE : Retail
ORGANIZATION : 4AD
CATALOG : CAD3535CD
Duration: 00:01:47.51, start: 0.000000, bitrate: 743 kb/s
Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
Stream mapping:
Stream #0:0 -> #0:0 (flac (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, mp3, to '/home/krypterro/audio/music_out/Visions/01-grimes-laughing_and_not_being_normal.mp3':
Metadata:
TPE1 : Grimes
TIT2 : Laughing And Not Being Normal
TALB : Art Angels
TDRC : 2015
TRCK : 1
TCON : Electronic
TPOS : 1
TOTALDISCS : 1
TOTALTRACKS : 15
TLAN : English
RIP DATE : 2015-12-12
RETAIL DATE : 2015-00-00
MEDIA : CD
CATALOG : CAD3535CD
RIPPING TOOL : EAC 1.0 Beta 3
RELEASE TYPE : Retail
ORGANIZATION : 4AD
TSSE : Lavf57.83.100
Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, s16p, 192 kb/s
Metadata:
encoder : Lavc57.107.100 libmp3lame
size= 2522kB time=00:01:47.52 bitrate= 192.1kbits/s speed= 41x
video:0kB audio:2521kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.042501%
2019-04-09 14:32:50.811 | INFO | __main__:main:73 - End of program
Process finished with exit code 0 -
No option name near , Error parsing a filter description around
8 août 2024, par Aqib JavedI am trying to attach the captions files ( srt format ) to a video
if im running the same command on mac or windows, its working with -vf or -filter_complex but on android/IOS, its not working and throwing the same error


i am on Flutter and here is my code :


var tempDir = await getTemporaryDirectory();
var status = await Permission.storage.status;
if (!status.isGranted) {
 await Permission.storage.request();
}

final outputPath = "${tempDir.path}/outputWithCaptions.mp4";


const videoPath = "/storage/emulated/0/Download/english.mp4";
final subtitlePath = deepGramResponse.captionsPath.replaceAll('\'', '\\\'');
String command = "-y -i";
command = "$command '$videoPath'";
command = "$command -vf";
command = '$command "subtitles=\'$subtitlePath\'"';
command = "$command '$outputPath'";
 if (File(videoPath).existsSync() && File(subtitlePath).existsSync()) {
 FFmpegKit.executeAsync(command, (session) async {
 final returnCode = await session.getReturnCode();
 final output = await session.getOutput();
 final error = await session.getFailStackTrace();
 final logs = await session
 .getAllLogs()
 .then((value) => value.map((e) => e.getMessage()).toList());
 log('FFmpeg command executed with return code: $returnCode');
 if (ReturnCode.isSuccess(returnCode)) {
 log('Captions attached successfully');
 deepGramResponse.copyWith(
 videoPath: outputPath,
 );
 Get.to(() => VideoPlayerScreen(videoPath: outputPath));
 } else {
 log('FFmpeg command failed');
 log('Error output: $output');
 log('Error details: $error');
 log('Logs: $logs');
 Fluttertoast.showToast(
 msg: 'Something went wrong, please try again later');
 }
 });
} else {
 log('One or more files do not exist');
 Fluttertoast.showToast(msg: 'Subtitle or video file not found');
 return;
}



and here is the error :


, [AVFilterGraph @ 0x7b8a3dda90] No option name near '/data/user/0/com.example.blink/app_flutter/captions.srt'
 , [AVFilterGraph @ 0x7b8a3dda90] Error parsing a filter description around: 
 , [AVFilterGraph @ 0x7b8a3dda90] Error parsing filterchain 'subtitles='/data/user/0/com.example.blink/app_flutter/captions.srt'' around: 
 , Error reinitializing filters!
 , Failed to inject frame into filter network: Invalid argument
 , Error while processing the decoded data for stream #0:0
 , Conversion failed!