# Video uzerinden sesi almak - Typescript - ffmpeg

![](https://i.imgur.com/wrCKVXX.png)

Video dosyasından sesi çıkarmak için TypeScript projesinde `fluent-ffmpeg` kütüphanesini kullanabilirsiniz. `fluent-ffmpeg`, FFmpeg komut satırı aracının bir sarmalayıcısıdır. `fluent-ffmpeg`'in çalışabilmesi için sisteminizde FFmpeg'in yüklü olması gerekmektedir. İşte bu görevi nasıl gerçekleştirebileceğiniz aşağıda adım adım anlatılmıştır:

### Adım 1: FFmpeg'i Yükle

Sisteminizde FFmpeg'in yüklü olduğundan emin olun. FFmpeg'i [FFmpeg'in resmi web sitesinden](https://ffmpeg.org/download.html) indirebilir veya Linux veya macOS kullanıyorsanız bir paket yöneticisi aracılığıyla yükleyebilirsiniz.

### Adım 2: `fluent-ffmpeg`'i Yükle

Henüz yapmadıysanız, projenize `fluent-ffmpeg` eklemek için şu komutu çalıştırın:

```shell
npm install fluent-ffmpeg
```

### Adım 3: Videodan Ses Çıkarmak için TypeScript Kodu

İşte `fluent-ffmpeg` kullanarak bir video dosyasından sesi çıkaran ve bunu bir MP3 dosyası olarak kaydeden basit bir TypeScript betiği. `tsconfig.json`'ınızın `ESNext`, `CommonJS` ve katı tip ayarları ile yapılandırıldığından emin olun.

```typescript
import ffmpeg from 'fluent-ffmpeg';

/**
 * Bir video dosyasından sesi çıkarır ve bunu bir MP3 dosyası olarak kaydeder.
 * @param videoFilePath - Video dosyasının yolu.
 * @param outputAudioPath - Çıkarılan ses dosyasının kaydedileceği yol.
 */
function extractAudioFromVideo(videoFilePath: string, outputAudioPath: string): Promise<void> {
    return new Promise((resolve, reject) => {
        ffmpeg(videoFilePath)
            .outputFormat('mp3') // Çıktı formatını mp3 olarak ayarla
            .on('end', () => {
                console.log(`Çıkarma tamamlandı: ${outputAudioPath}`);
                resolve();
            })
            .on('error', (err) => {
                console.error(`Ses çıkarma hatası: ${err.message}`);
                reject(err);
            })
            .save(outputAudioPath); // Çıktı dosya yolunu belirt
    });
}

// Örnek kullanım
const videoFilePath = 'path/to/your/video.mp4';
const outputAudioPath = 'path/to/output/audio.mp3';

extractAudioFromVideo(videoFilePath, outputAudioPath)
    .then(() => console.log('Ses çıkarma başarılı.'))
    .catch((err) => console.error(err));

```

**Önemli Notlar:**

* **FFmpeg Bağımlılığı:** Bu betik, FFmpeg'in doğru bir şekilde yüklendiğini ve sisteminizin PATH'ında erişilebilir olduğunu varsayar. Herhangi bir sorunla karşılaşırsanız FFmpeg yüklemenizi doğrulayın.
* **Tip Tanımları:** TypeScript, `fluent-ffmpeg` için tip tanımlarını bulamazsa, bunları `npm install @types/fluent-ffmpeg --save-dev` kullanarak yüklemeniz gerekebilir, varsayılan olarak mevcutsa, veya gerekliyse import üzerine bir `// @ts-ignore` yönergesi kullanabilirsiniz.
* **Hata Yönetimi:** Betik, asenkron çalışma ve hata yönetimi için Promise'leri kullanır. Hata yönetimi mantığını, uygulamanızın gereksinimlerine göre özelleştirin.

Bu adımları takip ederek, TypeScript projenizde video dosyalarından verimli ve etkili bir şekilde ses çıkarabilirsiniz.
