Saya ingin mengonversi semua file .mkv dalam folder menjadi .mp4 dengan VLC.
Ini harus menggunakan aliran video / audio asli dan jika mungkin subtitle .ass dari .mkv. Ini bukan benar-benar konversi, ini lebih seperti mengubah wadah - pemain saya tidak dapat membaca video MKV.
Jika saya melakukan konversi ini dengan tangan (secara manual) itu berfungsi, tapi saya punya banyak file MKV untuk dikonversi, jadi itu akan memakan banyak waktu.
Saya telah mencari di internet file batch untuk melakukan ini dan saya menemukan beberapa. Saya mencoba memodifikasinya sesuai keinginan saya, tetapi semua upaya yang saya coba baru saja membuat file .mp4 yang tidak mengandung aliran audio dan aliran video juga tidak dapat ditampilkan oleh semua pemutar media saya di PC.
Jadi, bisakah seseorang memberi tahu saya bagaimana betsnya harus terlihat, sehingga ia bekerja dengan aliran video dan audio asli (dan mungkin subtitle .ass)?
sumber
Jawaban:
mkvtomp4
Sepertinya
mkvtomp4
apa yang kamu inginkan?Anda dapat mengunduh versi Windows dan Linux di halaman Google Code. Anda akan memerlukan perangkat lunak tambahan.
Periksa situs apakah ada unduhan untuk Windows atau Linux. Pada OS X, Anda hanya perlu melakukannya
brew install mkvtoolnix mp4box
jika memiliki Homebrew .Ini tidak akan menyalin subtitle Anda. Anda akan membutuhkan langkah tambahan.
Batch FFmpeg
Jika mkvtomp4 tidak bekerja untuk Anda, file batch FFmpeg sederhana juga bisa dilakukan. Untuk Windows, Anda dapat mengunduh Zeranoe build . Di Linux, periksa FFmpeg dari sumber paket. Di OS X, gunakan
brew install ffmpeg
.Lalu, panggil saja:
Ini akan membuat wadah MP4 yang valid tanpa pengodean ulang. Ulangi file-file tersebut sesuai kebutuhan dan tersedia oleh sistem operasi Anda. Namun, kumpulan ini tidak akan menyalin subtitle.
Di * nix, Anda bisa melakukan hal berikut. Cukup buat file
convert.sh
:Ganti jalur ke folder video Anda di sini. Jadikan itu dapat dieksekusi dengan
chmod +x convert.sh
, lalu jalankan dengan./convert.sh
.Di Windows, Anda mungkin perlu dua file Batch ( plug tak tahu malu dari sini ), satu menjadi
startconvert.bat
:Dan yang melakukan konversi:
Simpan keduanya di folder video. Cukup jalankan
startconvert.bat
dari folder tempat Anda ingin memulai konversi.Teks
Jika Anda ingin menambahkan subtitle, Anda mungkin memerlukan prosedur manual jika hal berikut ini tidak sesuai untuk Anda:
Untuk mengekstrak teks terjemahan, gunakan:
Ini dengan asumsi bahwa file Anda benar-benar berisi subtitle pada track ID nomor 3 dan mereka dapat diekspor ke format SRT. Untuk memeriksa apakah file benar-benar berisi subtitle di trek 3, gunakan
mkvmerge -i input.mkv
.Kemudian, gunakan MP4Box untuk menambahkan kembali subtitle ke file MP4.
sumber
Ini adalah tweak dari sebagian jawaban yang diberikan slhck (dan terima kasih, slhck!) Karena saya menemukan bahwa perintah tidak berfungsi untuk ffmpeg terbaru (saat penulisan ini) - mungkin parameternya telah berubah di antara versi?
Pada Windows 7, menggunakan ffmpeg v.20130103-git-9e36d9e-win64-static (dekompres dengan utilitas 7zip), ditemukan melalui http://ffmpeg.zeranoe.com/builds/ pada gilirannya melalui http://ffmpeg.org /download.html , perintah berikut ini mengkonversi file .mov (diambil dari iPhone) menjadi file .mp4:
Saya menemukan bahwa mengubah bagian .mp4 ini menjadi .avi juga berfungsi, untuk mengubahnya menjadi wadah .avi. Dengan salah satu wadah target, menggunakan paramater "-vcodec copy -acodec copy" ini tampaknya hanya menyalin aliran sumber ke wadah baru (dalam target), jadi ini adalah konversi lossless (dan saya menduga itu akan menjadi kasus dengan berbagai wadah target juga).
Ini tweak batch slhck memberi juga bekerja untuk saya:
callConvert.bat:
convert.bat:
sumber
-c:a
dan-acodec
, atau-c:v
dan-vcodec
. Sebenarnya saya masih menggunakan yang pertama hari ini, karena ini adalah sintaks yang direkomendasikan, dan keduanya disebutkan dalam dokumentasi FFmpeg . Perhatikan bahwa mengubah wadah menjadi AVI mungkin pecah untuk banyak codec video dan audio, karena file AVI tidak memiliki dukungan untuk pengkodean prediktif (yang menggunakan video H.264 — yang diberikan oleh iPhone kepada Anda). Jika Anda tidak menggunakan wadah MP4 atau MOV sebagai target, selalu lebih baik untuk menyandikan ulang.Pertanyaan lama, tapi inilah jawaban saya, sebagai catatan. MP4 tidak dapat membuat subtitle kecuali mereka menjadi bagian dari bingkai video, tetapi ini adalah cara saya mengonversi file .mkv ke .mp4:
Simpan sebagai mkv2mp4.ps1 dan letakkan di folder yang Anda gunakan. Klik kanan dan "Open in Powershell" dan itu akan melakukan tugasnya.
Ini adalah pertama kalinya saya bahkan melihat Powershell (dan yang terakhir saya harap - mengapa MS tidak bisa hanya port Bash ?!) tetapi ini bekerja untuk saya dan didasarkan pada kode yang saya temukan di sini: https: // wiki .videolan.org / How_to_Batch_Encode / # Powershell
sumber
Makefile
- untuk dapat memutarkannya kembali dan hanya mengonversi sumber baru serta dapat menjalankan beberapa konversi secara paralel (untuk menggunakan semua CPU Anda ).