كيف يمكنني تحويل ملف M4A إلى MP3 أو WMA ملف برمجيا ؟ [مغلقة]

StackOverflow https://stackoverflow.com/questions/144466

  •  02-07-2019
  •  | 
  •  

سؤال

تحياتي

أنا أحاول أن أجد إما مجانا .صافي المكتبة أو سطر الأوامر القابلة للتنفيذ التي تسمح لي تحويل M4A الملفات سواء ملفات Mp3 أو WMA.الرجاء المساعدة :).

هل كانت مفيدة؟

المحلول

وجدت!

http://pieter.wigleven.com/it/archives/3

قد تكون هناك حلول أخرى ، ولكن هذا هو الذهب ما كنت أبحث عنه.

P. S.لقد كتبت أ .صافي DLL الذي يتعامل مع هذا وراء الكواليس.انها رهيبة جدا البرمجية ، ولكن فإنه يحصل على هذه المهمة.

نصائح أخرى

هذا هو بسيط إذا كنت تعرف الأدوات الصحيحة:

ffmpeg -i infile.m4a tmp.wav
lame tmp.wav outfile.mp3

هنا دفعة الإصدار (آسف لينكس/ماك فقط):

#!/bin/bash

n=0
maxjobs=3

for i in *.m4a ; do
    ffmpeg -i "$i" "$TMP/${i%m4a}wav"
    (lame "$TMP/${i%m4a}wav" "${i%m4a}mp3" ; rm "$TMP/${i%m4a}wav") &

    # limit jobs
    if (( $(($((++n)) % $maxjobs)) == 0 )) ; then
        wait
    fi

done

مثيرة للاهتمام.
الرابط الذي يعطي نقاط إلى أداة سطر الأوامر.
إذا كنت تريد حقا أن تفعل ذلك برمجيا, كنت قد تكون مهتمة من قبل DLL النسخة وجدت في Rarewares.ليس متأكدا مما اذا وصف API يأتي معها...:-)

من كيفية تحويل ملف وسائط إلى الملف WMA

string fileName = @"e:\Down\test.wmv";
DsConvert.ToWma(fileName, fileName + ".wma", DsConvert.WmaProfile.Stereo128);

بالنسبة UWP

public class ConvertToMp3Manager
{
    public PrepareTranscodeResult PrepareTranscode = null;
    public MediaTranscoder TransCoder = null;
    public StorageFile SourceAudio { get; set; }
    public StorageFile DestinationAudio { get; set; }
    public AudioFormat AudioFormat { get; set; }
    public AudioEncodingQuality AudioQuality { get; set; }
    private MediaEncodingProfile profile = null;
    public  ConvertToMp3Manager(StorageFile sourceAudio, StorageFile destinationAudio, AudioFormat AudioType = AudioFormat.MP3, AudioEncodingQuality audioEncodingQuality = AudioEncodingQuality.High)
    {
        if (sourceAudio == null || destinationAudio == null)
            throw new ArgumentNullException("sourceAudio and destinationAudio cannot be null");
        switch (AudioType)
        {
            case AudioFormat.AAC:
            case AudioFormat.M4A:
                profile = MediaEncodingProfile.CreateM4a(audioEncodingQuality);
                break;
            case AudioFormat.MP3:
                profile = MediaEncodingProfile.CreateMp3(audioEncodingQuality);
                break;
            case AudioFormat.WMA:
                profile = MediaEncodingProfile.CreateWma(audioEncodingQuality);
                break;
        }
        this.SourceAudio = sourceAudio;
        this.DestinationAudio = destinationAudio;
        this.AudioFormat = AudioType;
        this.AudioQuality = audioEncodingQuality;
        this.TransCoder = new MediaTranscoder();
    }
    /// <summary>
    /// Return true if audio can be transcoded
    /// </summary>
    /// <returns></returns>
    public async Task<bool> ConvertAudioAsync()
    {
        PrepareTranscode = await this.TransCoder.PrepareFileTranscodeAsync(this.SourceAudio, this.DestinationAudio, profile);
        if (PrepareTranscode.CanTranscode)
        {
            var transcodeOp = PrepareTranscode.TranscodeAsync();
            return true;
        }
        else
            return false;
    }
    public static async Task<bool> ConvertAudioAsync(StorageFile sourceAudio, StorageFile destinationAudio, AudioFormat AudioType = AudioFormat.MP3, AudioEncodingQuality audioEncodingQuality = AudioEncodingQuality.High)
    {
        ConvertToMp3Manager convertToMp3Manager = new ConvertToMp3Manager(sourceAudio, destinationAudio, AudioType, audioEncodingQuality);
        var success = await convertToMp3Manager.ConvertAudioAsync();
        return success;
    }
}
public enum AudioFormat
{
    MP3,
    AAC,
    M4A,
    WMA
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top