Video dönüştürürken altyazıları nasıl ekler ve / veya saklarım?


16

Ben mpv video mp4 dönüştürmek istiyorum, ama her şekilde denemek ve dönüştürmek (Handbrake, WinFF, ffmpeg, mencoder, ... Ben videonun altyazılarını kaybederim. Altyazıları tutmak, nasıl video dönüştürmek, veya bir altyazı ekleyin. srt?

Ayrıca 4054 video bit hızı ve 160 ses bit hızı ile 2 geçişli kodlama istiyorum.

Teşekkürler.

Ffmpeg -i istendi:

joe@joe-Leopard-Extreme:/media/Elements/Home Folder/Videos$ ffmpeg -i iron.mkv
ffmpeg version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav     developers
built on Jun 12 2012 16:52:09 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
[matroska,webm @ 0x1a319a0] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'iron.mkv':
Metadata:
title           : Iron 
Duration: 02:06:01.67, start: 0.000000, bitrate: 1280 kb/s
Chapter #0.0: start 0.000000, end 546.170622
Metadata:
  title           : Chapter 00
Chapter #0.1: start 546.170622, end 1080.579489
Metadata:
  title           : Chapter 01
Chapter #0.2: start 1080.579489, end 1609.941667
Metadata:
  title           : Chapter 02
Chapter #0.3: start 1609.941667, end 2101.849733
Metadata:
  title           : Chapter 03
Chapter #0.4: start 2101.849733, end 2595.259333
Metadata:
  title           : Chapter 04
Chapter #0.5: start 2595.259333, end 3158.488667
Metadata:
  title           : Chapter 05
Chapter #0.6: start 3158.488667, end 3564.644400
Metadata:
  title           : Chapter 06
Chapter #0.7: start 3564.644400, end 4052.423356
Metadata:
  title           : Chapter 07
Chapter #0.8: start 4052.423356, end 4304.300000
Metadata:
  title           : Chapter 08
Chapter #0.9: start 4304.300000, end 4711.206489
Metadata:
  title           : Chapter 09
Chapter #0.10: start 4711.206489, end 5080.575489
Metadata:
  title           : Chapter 10
Chapter #0.11: start 5080.575489, end 5700.111067
Metadata:
  title           : Chapter 11
Chapter #0.12: start 5700.111067, end 6269.346400
Metadata:
  title           : Chapter 12
Chapter #0.13: start 6269.346400, end 6811.471333
Metadata:
  title           : Chapter 13
Chapter #0.14: start 6811.471333, end 7561.679000
Metadata:
  title           : Chapter 14
Stream #0.0(eng): Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc
Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, s16, 640 kb/s (default)
Metadata:
  title           : 3/2+1
Stream #0.2(ita): Audio: ac3, 48000 Hz, 5.1, s16, 640 kb/s
Metadata:
  title           : 3/2+1
Stream #0.3(eng): Subtitle: pgssub (default)
Stream #0.4(eng): Subtitle: pgssub
Stream #0.5(eng): Subtitle: pgssub
Stream #0.6(eng): Subtitle: pgssub
At least one output file must be specified
joe@joe-Leopard-Extreme:/media/Elements/Home Folder/Videos

Yanıtlar:


19

Softsubs

MP4 akışlı metin formatı altyazılarını destekler, ancak oynatıcılar ve cihazlar arasında bunun için oynatma desteği evrensel değildir.

Ses kopyalanırken varsayılan akış seçimi davranışını kullanan temel örnek :

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

Tüm video ve ses akışlarını akış kopyalamaya , tüm metin tabanlı altyazı giriş akışlarını (SRT, ASS, VTT, vb.) Akışlı metin biçimine dönüştürmeye ve ilk iki altyazı akışının dilini ayarlamaya örnek.

ffmpeg -i input.mkv -map 0 -c copy -c:s mov_text -metadata:s:s:0 language=eng -metadata:s:s:1 language=ipk output.mp4

Yukarıdaki ile aynıdır, ancak video ve sesi MP4 kabıyla uyumlu formatlara yeniden kodlayın (H.264 video:

ffmpeg -i input.mkv -map 0 -c:v libx264 -c:a aac -c:s mov_text -metadata:s:s:0 language=eng -metadata:s:s:1 language=ipk output.mp4

Yukarıdaki ile aynıdır ancak -mapilk video akışını, ikinci ses akışını ve üçüncü altyazı akışını seçme seçeneğini kullanın:

ffmpeg -i input.mkv -map 0:v:0 -map 0:a:1 -map 0:s:2 -c:v libx264 -c:a aac -c:s mov_text -metadata:s:s:0 language=eng output.mp4

Hardsubs

Metin tabanlı altyazı biçimi girişleri

Kullan altyazı filtresiMetin tabanlı altyazı biçimlerini (SRT, ASS, VTT, vb.) "Yazmak" . Bunun yeniden kodlanmasını gerektirdiğini, bu nedenle softsubs kullanmaktan çok daha yavaş olacağını unutmayın.

Ses kopyalanırken varsayılan akış seçimi davranışını kullanan temel örnek :

ffmpeg -i input.mkv -filter_complex "subtitles=input.mkv" -c:a copy output.mp4

Üçüncü video akışını, beşinci altyazı akışını ve ilk ses akışını kullanma örneği:

ffmpeg -i input.mkv -filter_complex "[0:v:2]subtitles=input.mkv:si=4[v]" -map "[v]" -map 0:a:0 -c:a copy output.mp4

Ayrı bir altyazı giriş dosyası örneği ( your-subtitles-file.srt):

ffmpeg -i input.mp4 -filter_complex "subtitles=your-subtitles-file.srt" -c:a copy output.mp4

Görüntü tabanlı altyazı formatı girişleri

Kaplama filtresini kullanın . Bu örnek, dördüncü altyazı akışını ikinci video akışı üzerine yerleştirir ve yedinci ses akışını kopyalar:

ffmpeg -i input.mkv -filter_complex "[0:v:2][0:s:3]overlay[v]" -map "[v]" -map 0:a:6 -c:a copy output.mp4

Ayrıca bakınız


Bu beni biraz karıştırdı. Komutun tamamını verebilir misiniz? Evet, belirli bir çıktı dosyası boyutunu hedefliyorum.
JoeSteiger

@JoeSteiger Önce konsol çıktısını vererek sorunuzu güncellemelisiniz ffmpeg -i input.mkv.
llogan

Yukarıda kastettiğiniz şey mi?
JoeSteiger

@JoeSteiger Evet, bu yardımcı olur.
llogan

K, sonra ne yapacağımı bana bildirin.
JoeSteiger

13

tüm akışların kopyalandığından emin olmak için -map 0 kullanabilirsiniz. Biçimle mümkün değilse, ffmpeg hata vermelidir.

-map 0, ffmpeg / libav'a yalnızca ikna kuralları tanımladığınız değil, tüm akışları dahil etmesini söyler.

Normalde -map akış eşleştirmesini tanımlamak için kullanılır - yani girişteki akış 1, çıkışta akış 0 olmalıdır. Sadece -map 0 ile ffmpeg / libav'a tüm akışları karıştırmadan almasını söylersiniz.


Biraz daha açıklayabilir misiniz?
Kaz Wolfe

Cevabımı düzenledim
Arne Babenhauserheide

1

Sadece mp4'e basit bir dönüşüm yapmak istiyorsanız VLC'yi kullanabilirsiniz. VLC bir altyazı dosyasını kabul eder ve çıktıya dönüştürür.

Altyazıları biçimlendirme dahil daha karmaşık dönüşümler için OpenShot'ı kullanabilirsiniz.


-1

İşe yarayacak bir yol buldum, ideal değil, ama işe yarıyor. Mkvmerge ile bir videoya srt ekleyebilirim. Sadece düşüşünü video mkv yapar, mp4 değil.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.