Recherche avancée

Médias (1)

Mot : - Tags -/swfupload

Autres articles (111)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Script d’installation automatique de MediaSPIP

    25 avril 2011, par

    Afin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
    Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
    La documentation de l’utilisation du script d’installation (...)

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

Sur d’autres sites (9514)

  • FFMPEG : Create output depending on the input's streams

    14 novembre 2022, par Javierd98

    I'm working on a project where I need to use FFMPEG CLI to generate a video and an audio file from a single input. This is a pretty simple command like :

    


    ffmpeg -i input.mp4 -y -map 0:a:0? -acodec mp2 -f mp2 audio.mp2 -map 0:v:0? -f mp4 -vcodec libx264 video.mp4


    


    So, the main problem I'm experiencing is that I don't really know whether the input has audio/video, it could be a mp4 file with no video or audio streams. In those cases, FFMPEG fails as there is no stream to associate to one of the outputs.

    


    Is there any way I could tell FFMPEG to only create the output if the corresponding input stream exists ? If not, I found this question showing how to add blank audio if there's no input audio, how could I create an empty video too ? Is there any other possible solution ?

    


    Thanks a lot for your help.

    


  • Use C# to converting apng to webm with ffmpeg from pipe input and output

    30 novembre 2022, par martin wang

    I was using ffmpeg to convert Line sticker from apng file to webm file.
And the result is weird, some of them was converted successed and some of them failed.
not sure what happend with these failed convert.

    


    Here is my c# code to convert Line sticker to webm,
and I use CliWrap to run ffmpeg command line.

    


    async Task Main()
{

    var downloadUrl = @"http://dl.stickershop.LINE.naver.jp/products/0/0/1/23303/iphone/stickerpack@2x.zip";
    var arg = @$"-i pipe:.png -vf scale=512:512:force_original_aspect_ratio=decrease:flags=lanczos -pix_fmt yuva420p -c:v libvpx-vp9 -cpu-used 5 -minrate 50k -b:v 350k -maxrate 450k -to 00:00:02.900 -an -y -f webm pipe:1";

    var errorCount = 0;
    try
    {
        using (var hc = new HttpClient())
        {
            var imgsZip = await hc.GetStreamAsync(downloadUrl);

            using (ZipArchive zipFile = new ZipArchive(imgsZip))
            {
                var files = zipFile.Entries.Where(entry => Regex.IsMatch(entry.FullName, @"animation@2x\/\d+\@2x.png"));
                foreach (var entry in files)
                {
                    try
                    {
                        using (var fileStream = File.Create(Path.Combine("D:", "Projects", "ffmpeg", "Temp", $"{Path.GetFileNameWithoutExtension(entry.Name)}.webm")))
                        using (var pngFileStream = File.Create(Path.Combine("D:", "Projects", "ffmpeg", "Temp", $"{entry.Name}")))
                        using (var entryStream = entry.Open())
                        using (MemoryStream ms = new MemoryStream())
                        {
                            entry.Open().CopyTo(pngFileStream);

                            var result = await Cli.Wrap("ffmpeg")
                                         .WithArguments(arg)
                                         .WithStandardInputPipe(PipeSource.FromStream(entryStream))
                                         .WithStandardOutputPipe(PipeTarget.ToStream(ms))
                                         .WithStandardErrorPipe(PipeTarget.ToFile(Path.Combine("D:", "Projects", "ffmpeg", "Temp", $"{Path.GetFileNameWithoutExtension(entry.Name)}Info.txt")))
                                         .WithValidation(CommandResultValidation.ZeroExitCode)
                                         .ExecuteAsync();
                            ms.Seek(0, SeekOrigin.Begin);
                            ms.WriteTo(fileStream);
                        }
                    }
                    catch (Exception ex)
                    {
                        entry.FullName.Dump();
                        ex.Dump();
                        errorCount++;
                    }
                }
            }

        }
    }
    catch (Exception ex)
    {
        ex.Dump();
    }
    $"Error Count:{errorCount.Dump()}".Dump();

}


    


    This is the failed convert file's error information from ffmpeg :

    


    enter image description here

    


    And the successed convert file from ffmpeg infromation :
enter image description here

    


    It's strange when I was manually converted these failed convert file from command line, and it will be converted successed.
enter image description here

    


    The question is the resource of images are all the same apng file,
so I just can't understan why some of files will convert failed from my c# code
but also when I manually use command line will be converted successed ?

    



    


    I have written same exampe from C# to Python...
and here is python code :

    


    from io import BytesIO
import os
import re
import subprocess
import zipfile

import requests


downloadUrl = "http://dl.stickershop.LINE.naver.jp/products/0/0/1/23303/iphone/stickerpack@2x.zip"
args = [
    'ffmpeg',
    '-i', 'pipe:',
    '-vf', 'scale=512:512:force_original_aspect_ratio=decrease:flags=lanczos',
    '-pix_fmt', 'yuva420p',
    '-c:v', 'libvpx-vp9',
    '-cpu-used', '5',
    '-minrate', '50k',
    '-b:v', '350k',
    '-maxrate', '450k', '-to', '00:00:02.900', '-an', '-y', '-f', 'webm', 'pipe:1'
]


imgsZip = requests.get(downloadUrl)
with zipfile.ZipFile(BytesIO(imgsZip.content)) as archive:
    files = [file for file in archive.infolist() if re.match(
        "animation@2x\/\d+\@2x.png", file.filename)]
    for entry in files:
        fileName = entry.filename.replace(
            "animation@2x/", "").replace(".png", "")
        rootPath = 'D:\\' + os.path.join("Projects", "ffmpeg", "Temp")
        # original file
        apngFile = os.path.join(rootPath, fileName+'.png')
        # output file
        webmFile = os.path.join(rootPath, fileName+'.webm')
        # output info
        infoFile = os.path.join(rootPath, fileName+'info.txt')

        with archive.open(entry) as file, open(apngFile, 'wb') as output_apng, open(webmFile, 'wb') as output_webm, open(infoFile, 'wb') as output_info:
            p = subprocess.Popen(args, stdin=subprocess.PIPE,
                                 stdout=subprocess.PIPE, stderr=output_info)
            outputBytes = p.communicate(input=file.read())[0]

            output_webm.write(outputBytes)
            file.seek(0)
            output_apng.write(file.read())



    


    And you can try it,the result will be the as same as C#.

    


  • How to list all audio devices that are enabled and present for recording the output audio of the pc ?

    23 juin 2023, par Daniel Lip

    I want to record with ffmpeg later the entire desktop including audio.
I want to make that it will find for me automatic the recording audio device.

    


    I'm using MMDeviceEnumerator.

    


    all the other ways I tried returned empty list returned 0 audio devices. I tried with naudio and ffmpeg

    


    public Form1()
        {
            InitializeComponent();

            InitializeRecordingIndicator();

            MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
            foreach (MMDevice device in enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.All))
            {
                StreamWriter w = new StreamWriter(@"d:\audiodev.txt", true);
                cmbAudioDevices.Items.Add(device.FriendlyName);
                w.WriteLine(device.FriendlyName + " " + device.State);
                w.Close();
            }
        }


    


    This is the list of all my audio deviceso n my system.
but they are all not present or disabled. and i have audio on my pc i can hear games videos anything.

    


    so what would i select from this list as audio device for recording the pc output audio ?
or maybe i need to find another way to find the right audio device ?

    


    Front Green In (Realtek(R) Audio) NotPresent
Rear (Realtek(R) Audio) NotPresent
Center (Realtek(R) Audio) NotPresent
Microphone (Realtek(R) Audio) NotPresent
Rear Grey In (Realtek(R) Audio) NotPresent
Side (Realtek(R) Audio) NotPresent
Internal AUX Jack (NVIDIA High Definition Audio) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Rear Pink In (Realtek(R) Audio) NotPresent
Internal AUX Jack (NVIDIA High Definition Audio) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Internal AUX Jack (NVIDIA High Definition Audio) NotPresent
Front (Realtek(R) Audio) NotPresent
Rear Orange In (Realtek(R) Audio) NotPresent
Line In (Realtek(R) Audio) NotPresent
Front Pink In (Realtek(R) Audio) NotPresent
Line In (Realtek(R) Audio) Unplugged
Internal AUX Jack (High Definition Audio Device) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Microphone (Realtek(R) Audio) Unplugged
Subwoofer (Realtek(R) Audio) NotPresent
Rear Black In (Realtek(R) Audio) NotPresent
Stereo Mix (Realtek(R) Audio) Disabled
Rear Green In (Realtek(R) Audio) NotPresent
Microphone (Realtek(R) Audio) NotPresent
Rear Blue In (Realtek(R) Audio) NotPresent
Front Green In (Realtek(R) Audio) NotPresent
Rear (Realtek(R) Audio) NotPresent
Center (Realtek(R) Audio) NotPresent
Microphone (Realtek(R) Audio) NotPresent
Rear Grey In (Realtek(R) Audio) NotPresent
Side (Realtek(R) Audio) NotPresent
Internal AUX Jack (NVIDIA High Definition Audio) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Rear Pink In (Realtek(R) Audio) NotPresent
Internal AUX Jack (NVIDIA High Definition Audio) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Internal AUX Jack (NVIDIA High Definition Audio) NotPresent
Front (Realtek(R) Audio) NotPresent
Rear Orange In (Realtek(R) Audio) NotPresent
Line In (Realtek(R) Audio) NotPresent
Front Pink In (Realtek(R) Audio) NotPresent
Line In (Realtek(R) Audio) Unplugged
Internal AUX Jack (High Definition Audio Device) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Microphone (Realtek(R) Audio) Unplugged
Subwoofer (Realtek(R) Audio) NotPresent
Rear Black In (Realtek(R) Audio) NotPresent
Stereo Mix (Realtek(R) Audio) Disabled
Rear Green In (Realtek(R) Audio) NotPresent
Microphone (Realtek(R) Audio) NotPresent
Rear Blue In (Realtek(R) Audio) NotPresent
Front Green In (Realtek(R) Audio) NotPresent
Rear (Realtek(R) Audio) NotPresent
Center (Realtek(R) Audio) NotPresent
Microphone (Realtek(R) Audio) NotPresent
Rear Grey In (Realtek(R) Audio) NotPresent
Side (Realtek(R) Audio) NotPresent
Internal AUX Jack (NVIDIA High Definition Audio) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Rear Pink In (Realtek(R) Audio) NotPresent
Internal AUX Jack (NVIDIA High Definition Audio) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Internal AUX Jack (NVIDIA High Definition Audio) NotPresent
Front (Realtek(R) Audio) NotPresent
Rear Orange In (Realtek(R) Audio) NotPresent
Line In (Realtek(R) Audio) NotPresent
Front Pink In (Realtek(R) Audio) NotPresent
Line In (Realtek(R) Audio) Unplugged
Internal AUX Jack (High Definition Audio Device) NotPresent
Internal AUX Jack (High Definition Audio Device) NotPresent
Microphone (Realtek(R) Audio) Unplugged
Subwoofer (Realtek(R) Audio) NotPresent
Rear Black In (Realtek(R) Audio) NotPresent
Stereo Mix (Realtek(R) Audio) Disabled
Rear Green In (Realtek(R) Audio) NotPresent
Microphone (Realtek(R) Audio) NotPresent
Rear Blue In (Realtek(R) Audio) NotPresent


    


    this is how i tried with naudio but it didn't working it didn't find anything. :

    


    using NAudio.Wave;
...

// Enumerate and list audio input devices
var devices = WaveInEvent.DeviceCount;
for (int deviceId = 0; deviceId < devices; deviceId++)
{
    var deviceInfo = WaveInEvent.GetCapabilities(deviceId);
    Console.WriteLine($"Device ID: {deviceId}, Name: {deviceInfo.ProductName}");
}


    


    before that i tried with ffmpeg but also it didn't return anything :

    


    public static class FFmpegHelper
    {
        public static string[] GetAudioCaptureDevices()
        {
            string ffmpegPath = @"C:\path\to\ffmpeg.exe";
            Process process = new Process();
            process.StartInfo.FileName = ffmpegPath;
            process.StartInfo.Arguments = "-list_devices true -f dshow -i dummy";
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardError = true;
            process.StartInfo.CreateNoWindow = true;
            process.Start();
            process.WaitForExit();

            string output = process.StandardError.ReadToEnd();
            string[] lines = output.Split('\n');
            var devices = lines.Where(line => line.Contains("audio")).Select(line => line.Trim()).ToArray();
            return devices;
        }
    }


    


    using it :

    


    var audioDevices = FFmpegHelper.GetAudioCaptureDevices();