Recherche avancée

Médias (1)

Mot : - Tags -/ogg

Autres articles (101)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • L’agrémenter visuellement

    10 avril 2011

    MediaSPIP est basé sur un système de thèmes et de squelettes. Les squelettes définissent le placement des informations dans la page, définissant un usage spécifique de la plateforme, et les thèmes l’habillage graphique général.
    Chacun peut proposer un nouveau thème graphique ou un squelette et le mettre à disposition de la communauté.

Sur d’autres sites (15038)

  • Running command Subprocess python failed but the same exact command runs well in Terminal

    15 juillet 2023, par will

    As the title says : weird problem. I've been struggling to make this work for a whole day but to no avail. Any help would be deeply appreciated.

    


    # I've tried every one of the below path but still errors: Fontconfig error: Cannot load default config file: No such file: (null)

FONT_LOC = r'C\\:/Users/acer/AppData/Local/Microsoft/Windows/Fonts/jf-openhuninn-1.1.ttf'
FONT_LOC = 'C:/Users/acer/AppData/Local/Microsoft/Windows/Fonts/jf-openhuninn-1.1.ttf'
FONT_LOC = 'C://Users/acer/AppData/Local/Microsoft/Windows/Fonts/jf-openhuninn-1.1.ttf'


duration = '30
subtitle='abc'
comd = [
            "ffmpeg",
            "-f", "lavfi",
            "-i", "color=c=black:s=1280x720:d={duration}".format(duration=duration),
            "-vf", f'''drawtext=fontfile="{FONT_LOC}":text='{subtitle}':fontcolor=white:fontsize=24:x=(w-text_w)/2:y=(h-text_h)/2''',
            "-c:v", "libx264",
            "-t", duration,
            "-pix_fmt", "yuv420p",
            output_file+'.mp4'
            ]
print(' '.join(comd))
subprocess.run(comd, check=True, capture_output=True, text=True) # Failed


# The below command runs successfully in the terminal.
# ffmpeg -f lavfi -i color=c=black:s=1280x720:d=2.352000 -vf drawtext=fontfile="C\\://Users/acer/AppData/Local/Microsoft/Windows/Fonts/jf-openhuninn-1.1.ttf":text='abc':fontcolor=white:fontsize=24:x=(w-text_w)/2:y=(h-text_h)/2 -c:v libx264 -t 2.352000 -pix_fmt yuv420p output_Test-0004.mp3.mp4



    


    I expect the subprocess.run() would produce the same result. I've tried all versions of paths (different kind of escaping) but none of the aforementioned one worked.

    


  • FFmpeg - invalid argument on a creation of MP4 with .SRT - Help Needed to Correctly Set Filename of .srt in a FFMPEG Command

    23 mai 2023, par sKunZel

    I have been experiencing a persistent issue while developing a command in FFMPEG to combine a .mp4 file (composed of a static image & audio from a .mp3) with burnt-in subtitles from a stylized .srt file into a new MP4.

    


    This is the command I have been using :

    


    command = f"""ffmpeg -report -i "{input_video_arg_abs}" -vf "subtitles='{input_srt_arg_abs}':original_size=816x1456:force_style='FontName=Open Sans Italic,FontSize=13,MarginR=10,MarginV=149'" -c:v libx264 -crf 18 -c:a copy -movflags +faststart "{output_video}" """ 


    


    My script includes the main variable definitions and function calls as shown below :

    


    input_srt = os.path.normpath(os.path.join(input_directory, srt_file))
print(f"SRT file path: {input_srt}")
reformat_srt(input_srt)
final_video_output=os.path.normpath(os.path.join(output_directory, os.path.splitext(mp3_file)[0] + '.mp4'))
time.sleep(0.5)
create_final_video(temp_video_output, input_srt, final_video_output)


    


    Despite appearing to run successfully, the output file generated is 0 Kb. All logs that I could find suggested an error in the way I've written the .srt, but the input_srt seems to print out correctly.

    


    Here are the log details :
...
[Parsed_subtitles_0 @ 0000028068d97d00] Setting 'filename' to value 'E'
[Parsed_subtitles_0 @ 0000028068d97d00] Unable to open E
...
Error reinitializing filters !
Failed to inject frame into filter network : No such file or directory
Error while processing the decoded data for stream #0:0
Conversion failed !

    


    I am currently speculating that "E :" might be causing the problem. This would be correctly interpreted by Windows, but I'm unsure about FFMPEG's interpretation.
I'm hoping someone might be able to assist me in solving this issue. I'd be delighted if the solution involves an ingenious trick. Otherwise, my apologies for the rookie question. I appreciate your help in advance.

    


    Best,
sKunZel

    


  • Keep trying a command until it returns "True" and then execute another

    6 janvier 2023, par Tyrone Hirt

    I'm trying to make a script to check the processor usage for a specific process every 10 seconds, and when the usage is less than 2% I want another 2 commands to be executed.

    


    The purpose is to know when the program has finished processing the requests, in order to release the execution of the other commands.

    


    I created this script to check the processor usage by this application :

    


    SET ProcessorUsage = wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime | findstr /i /c:RenderQuery

%ProcessorUsage%


    


    And these are the commands I want to be executed when the processor usage of the RenderQuery application is less than 2% :

    


    for /f "delims=" %%X in ('dir /s/b/ad Proxy') do for /f "delims=" %%Y in ('dir /s/b/a-d "%%X"') do move "%%Y" ".\03. Proxy"

for /f "delims=" %%i in ('dir /s/b/ad Proxy') do rd "%%i"


    


    I tried to create a script that way here :

    


    SET ProcessorUsage = wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime | findstr /i /c:RenderQuery
:Loop
IF %ProcessorUsage% LSS 2 (
(for /f "delims=" %%X in ('dir /s/b/ad Proxy') do for /f "delims=" %%Y in ('dir /s/b/a-d "%%X"') do move "%%Y" ".\03. Proxy") && (for /f "delims=" %%i in ('dir /s/b/ad Proxy') do rd "%%i")
) ELSE (
sleep 10 && goto Loop
)


    


    I also tried this way here :

    


    SET ProcessorUsage = wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime | findstr /i /c:RenderQuery

:Loop
for %ProcessorUsage% LSS 2 do (
(for /f "delims=" %%X in ('dir /s/b/ad Proxy') do for /f "delims=" %%Y in ('dir /s/b/a-d "%%X"') do move "%%Y" ".\03. Proxy") && (for /f "delims=" %%i in ('dir /s/b/ad Proxy') do rd "%%i") || (sleep 10 && goto Loop)
)


    


    With these scripts I tried to create the window that only blinks and closes right away...

    


    What's the best way to do this ?

    


    EDIT

    


    Explaining in more detail : I work with video production, so I constantly need to render Proxy files, which are video files with low quality to be used during my video editing and replaced at the end of editing, this makes the much smoother video editing.

    


    Having said that, I have a folder model, inside this folder model there is a folder where I always download the video files from the camera and in that folder there is always a .bat file that opens all the video files in the software that generates proxy files of the camera's video files.

    


    This .bat file has this exact code :

    


    start "" "C:\Users\User\Downloads\FFmpeg_Batch_AV_Converter_Portable_2.8.4_x64\FFBatch.exe" -f "%~dp0\"


    


    When this software opens, it automatically renders the proxy files and their output is always in a child folder of the original files folder, and the name of the folder is Proxy.

    


    The issue is that I don't want them to be in several separate Proxy folders, so I created another .bat file that is in the parent folder of all video files, this script contains exactly these lines :

    


    for /f "delims=" %%X in ('dir /s/b/ad Proxy') do for /f "delims=" %%Y in ('dir /s/b/a-d "%%X"') do move "%%Y" ".\03. Proxy"

for /f "delims=" %%i in ('dir /s/b/ad Proxy') do rd "%%i"


    


    That is, it only searches recursively for files that are inside folders named Proxy, then it moves these files to the folder 03. Proxy that is inside the parent folder.

    


    The second line looks for all proxy folders (which are now empty) and deletes them.

    


    The point is : I currently run the second script manually, as soon as the render finishes, and I would like it to run automatically.

    


    Given this, I thought of adding a line in the first script, which opens the video files in the rendering program, this line would call the second script in the background, and the second script would be analyzing the CPU usage of this application every 10 seconds, and when the usage is less than 2% (in theory there is nothing else rendering, since it has a low CPU usage) it executes the lines that move the files and remove the folders.

    


    I think there's a good change for this to work, because this software renders 4 videos at a time, and this means that there is no time between stopping rendering a video and starting another... the CPU usage is always very high until all the videos are finished, so I think this would be the best signal to release the other commands.