Konversi MKV dengan suara DTS ke video MP4 dengan audio AAC atau AC3

13

Saya punya film 4.3 GB 720p dan ingin mengkonversi MKV ini dengan suara DTS ke video MP4 dengan audio AAC atau AC3.

Saya terkadang mendapatkan:

ffmpeg: unrecognized option '-c:v'

…dan:

aac unrecognized

¬dan hal serupa lainnya.

Saya ingin film ini berukuran kecil seperti yang ditemukan di situs torrent.

lembah
sumber
Bisakah Anda membantu kami dan beri kami perintah persis yang Anda gunakan dan hasil lengkap, tanpa dipotong yang dihasilkan FFmpeg? Sistem operasi manakah Anda? Dan terakhir: Apakah Anda harus menggunakan FFmpeg? Harap edit pertanyaan Anda.
slhck

Jawaban:

19

Pastikan Anda menjalankan FFmpeg versi terbaru . Untuk Windows dan Linux, build statis tersedia dari beranda. Untuk macOS, Anda dapat menginstal FFmpeg melalui Homebrew .

Kemudian, dalam menjalankan kasus paling sederhana:

ffmpeg -i input.mkv -c:v libx264 -c:a aac out.mp4

Pengaturan kualitas video

Untuk mengontrol kualitas video, mengatur para crfparameter , yang defaultnya 23. rendah berarti kualitas yang lebih baik, tetapi ukuran file yang lebih tinggi. Coba nilai antara 19 dan 26 untuk melihat yang paling cocok. Anda juga dapat mengatur bit rate tertentu, tergantung pada ukuran file yang Anda inginkan. Di sini, misalnya, 500 kBit / s:

ffmpeg -i input.mkv -c:v libx264 -crf 23 …
ffmpeg -i input.mkv -c:v libx264 -b:v 500k …

Untuk audio, Anda dapat mengatur bit rate juga, dengan -b:a.

Audio saluran ganda

Jika aliran audio Anda menggunakan beberapa saluran (mis. Suara 5.1), Anda perlu menggunakan penyandi AAC lain ( libfdk_aac). Encoder ini tidak tersedia di build statis, tetapi dapat diperoleh dengan versi ffmpeg yang sudah dipaket / buatan sendiri.

ffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a libfdk_aac -b:a 384k out.mp4

Menyalin semua aliran

Jika file input Anda memiliki lebih dari satu video, audio, dan streaming subtitle, ffmpeg secara default tidak mengkonversi semuanya.

Gunakan -map 0untuk menginstruksikan ffmpeg untuk mengambil semua stream dari file input (lihat FFmpeg Wiki untuk info lebih lanjut). Ini berguna untuk mempertahankan berbagai bahasa dan terjemahan yang mungkin ada dalam aslinya.

ffmpeg -i input.mkv -c:v libx264 -c:a aac -map 0 out.mp4
slhck
sumber
2

MKV hanyalah sebuah wadah. Anda dapat memiliki video MPEG-4 di dalam sebuah .mkvwadah.

Saran saya adalah ini:

Dorong file ke .mkvwadah:

mkvmerge -o newfile.mkv inputfile.m4v

Dapatkan mkvdts2ac3.shskrip tersedia di sini dan jalankan perintah ini:

mkvdts2ac3.sh newfile.mkv

Selesai!

TV saya mendukung AC3, tetapi tidak untuk DTS, jadi pengaturan ini sangat membantu saya.

Harap dicatat bahwa mkvdts2ac3.shmemiliki beberapa persyaratan ketergantungan yang sangat mendasar. Anda akan melihatnya saat menjalankan skrip.

Utah Jarhead
sumber
root @ Frenzen: ~ / Downloads / 2.Days.In.New.York.2012.720p.BluRay.X264- 7SinS # mkvmerge -o 7s-2days-in-ny-720p.mkv inputfile.m4v mkvmerge v3.0.0 (' Gantung Hang-up Anda ') dibangun pada 29 Des 2009 00:24:14 Kesalahan: File sumber' inputfile.m4v 'tidak dapat dibuka dengan sukses, atau mengambil ukurannya dengan mencari sampai akhir tidak berhasil. root @ Frenzen: ~ / Downloads / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS #
dale
Kedengarannya seperti file input yang rusak.
UtahJarhead
@dale Bisakah Anda mencantumkan output yang saya minta dalam komentar pada pertanyaan awal Anda? Itu akan membantu kami memecahkan masalah Anda.
slhck
Juga, UtahJarhead, OP tampaknya menginginkan file hasil MP4 dari file input MKV. Dia tidak memiliki m4vfile yang mengapa perintah Anda tidak berfungsi. Juga, dale menggunakan sintaks yang salah, menentukan file yang sudah ada sebagai output dan memberikan inputfile.m4vinput, yang jelas tidak ada.
slhck
mp4 adalah codec, bukan wadah. mkv adalah wadah, bukan codec. Itu seperti mengatakan mereka ingin membuat garasi dari Cadillac. Apa codec adalah file input .mkv karena itu dapat membuat perbedaan.
UtahJarhead
1

Anda dapat melakukan ini:

ffmpeg -i input.mkv -c:v copy -c:a libfaac out.mp4

Atau jika tidak ada kesenangan, coba perbaiki bitstream internal

Konversi ke stereo dan naik:

ffmpeg -i input.mkv -c:v copy -c:a libfaac    \
-bsf:a aac_adtstoasc -ac 2 -ar 48000 -ab 256k \
out.mkv

Jika 5.1, surround dan suaranya sulit untuk didengar karena dialognya ada di saluran tengah dan Anda hanya mendengar off-mike dari saluran R & L tetapi musik dan efek suara sedang booming.

Anda dapat mengompensasinya dengan filter dolby-II untuk menurunkan saluran surround dan saluran tengah terpecah menjadi stereo, dan menggabungkan semuanya menjadi saluran stereo kanan dan kiri.

ffmpeg -i input.mkv -c:v copy -c:a libfaac -bsf:a aac_adtstoasc   \
  -af aresample=matrix_encoding=dplii -ac 2 -ar 48000 -ab 256k    \
  out.mkv
Chris Reid
sumber
0

Seperti yang dikatakan @UtahJarhead , MKV adalah wadahnya. Pada dasarnya, yang Anda inginkan adalah mengubah audio DTS ke AC3 atau AAC.

Cara terbaik untuk melakukan ini adalah dengan menggunakan FFmpeg untuk audio dan MKVToolNix untuk menggabungkan audio dan video.

Jika Anda lebih suka GUI daripada perintah, saya jelaskan bagaimana melakukannya di sini: Konversi audio yang tidak didukung dari video .

IvanRF
sumber
1
Anda harus menjelaskan prosesnya di sini, kemudian dan hanya kemudian, berikan tautan unduhan ke aplikasi.
Ramhound
@Ramhound Saya baru saja mengedit jawabannya
IvanRF