Konversi FFMPEG mkv ke mp4 kehilangan subtitle

11

Saat ini sedang mencoba mengonversi perpustakaan mkv saya ke mp4 (Iphone 6 plus)

Saya telah berhasil mendapatkan konversi mkv ke mp4 dengan benar, tetapi saya kehilangan bagian subtitle (SRT)

Ini kode saya:

dir/b/s *.mkv >mkvlist.txt   ///////// this gets a list of all the mkv files on the directory

for /F "delims=;" %%F in (mkvlist.txt) do ffmpeg.exe  -i "%%F" -format mp4 -vcodec copy -acodec aac -strict -2 -sn "%%~dF%%~pF%%~nF.mp4"   ///////////// this makes the conversion

del mkvlist.txt     ////// this deletes the txt file

Saya ingin memasukkan subtitle ke dalam skrip, tetapi saya kesulitan memasukkan nama yang tepat untuk subtitle ke dalam skrip (karena ini adalah kumpulan konversi berganda).

dpkmon
sumber
File .mkv adalah format wadah. Sangat mungkin bahwa file mkv berisi file .srt yang dapat Anda ekstrak. Pastikan ia memiliki nama yang sama dengan file .mp4 dan harus berfungsi. File mkv sebenarnya mungkin juga berisi file mp4 tetapi juga dapat memiliki .divx, .avi atau format video lainnya.
LPChip

Jawaban:

17

MP4 tidak mendukung SRT. Anda dapat menggunakan softsubs atau hardsubs.

softsubs

Teks yang terdiri sebagai aliran terpisah di file. Mereka dapat diaktifkan / dinonaktifkan oleh pemain, dan tidak memerlukan aliran video untuk dikodekan ulang.

ffmpeg -i input.mkv -c copy -c:s mov_text output.mp4

Dukungan pemain untuk softsub teks berwaktu dalam MP4 bisa agak buruk. Anda hanya harus mencobanya.

hardsubs

Hardsubs "dibakar" ke dalam video sehingga video harus dikodekan ulang.

ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4

Lihat dokumentasi filter susbtitles untuk info lebih lanjut seperti bagaimana memilih aliran subtitle tertentu jika ada lebih dari satu.

llogan
sumber
Bisakah Anda membantu saya lebih memahami kode saya? Di mana dan mengapa Anda menambahkan pengodean ulang untuk subs? (Dan jika Anda dapat memikirkan solusi atau cara untuk mengonversi semua file dalam subfolder dengan subs yang sesuai?) (Jika tidak ada subtitle, maka perlu lewati file sama sekali dan pindah ke yang berikutnya.
dpkmon
2

Saya memiliki masalah yang sama mulai dari MP4 ke MKV dari beberapa file mp4 yang saya robek dengan Handbrake. Saya pertama kali berkonsultasi dengan https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options , yang menyiratkan format subtitle khusus untuk mkv vs mp4. Setelah bermain-main dengan konversi ass dan mov_text yang tidak berfungsi, saya menguji beberapa file dan melihat format dvd_subtitle muncul. Setelah banyak bermain-main berikut ini berhasil.

ffmpeg -i "\\server\directory\Sourcefile.mp4" -c:v copy -c:a copy -c:s dvd_subtitle "\\server\directory\Outputfile.mkv"

Semoga ini bisa membantu.

Von Rugen
sumber