Làm cách nào để thêm và / hoặc giữ phụ đề khi chuyển đổi video?


16

Tôi có một video mkv tôi muốn chuyển đổi sang mp4, nhưng mọi cách tôi thử và chuyển đổi nó (Handbrake, WinFF, ffmpeg, mencoder, ... Tôi mất phụ đề của video. Làm cách nào tôi có thể chuyển đổi video, giữ phụ đề, hoặc thêm phụ đề.srt?

Tôi cũng muốn mã hóa 2 lần với tốc độ bit video là 4054 và bitrate âm thanh là 160.

Cảm ơn.

Tôi đã được yêu cầu cho ffmpeg -i:

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

Câu trả lời:


19

Softsub

MP4 hỗ trợ phát trực tuyến phụ đề định dạng văn bản, nhưng hỗ trợ phát lại cho người chơi và thiết bị này không phổ biến.

Ví dụ cơ bản sử dụng hành vi chọn luồng mặc định trong khi sao chép luồng âm thanh:

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

Ví dụ để phát trực tuyến sao chép tất cả các luồng video và âm thanh, chuyển đổi tất cả các luồng đầu vào phụ đề dựa trên văn bản (SRT, ASS, VTT, v.v.) sang định dạng văn bản phát trực tuyến và đặt ngôn ngữ cho hai luồng phụ đề đầu tiên.

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

Tương tự như trên nhưng mã hóa lại video và âm thanh thành các định dạng tương thích với bộ chứa MP4 (video H.264:

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

Tương tự như trên nhưng sử dụng -maptùy chọn để chọn luồng video đầu tiên, luồng âm thanh thứ hai và luồng phụ đề thứ ba:

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

Hardsub

Định dạng văn bản phụ đề đầu vào

Sử dụng bộ lọc phụ đề để định dạng phụ đề dựa trên văn bản "burn-in" (SRT, ASS, VTT, v.v.). Lưu ý rằng điều này đòi hỏi phải mã hóa lại, vì vậy nó sẽ chậm hơn nhiều so với sử dụng softsub.

Ví dụ cơ bản sử dụng hành vi chọn luồng mặc định trong khi sao chép luồng âm thanh:

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

Ví dụ để sử dụng luồng video thứ ba, luồng phụ đề thứ năm và luồng âm thanh đầu tiên:

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

Ví dụ cho một tệp đầu vào phụ đề riêng ( your-subtitles-file.srt):

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

Định dạng phụ đề dựa trên hình ảnh

Sử dụng bộ lọc lớp phủ . Ví dụ này sẽ che phủ luồng phụ đề thứ tư trên luồng video thứ hai và sao chép luồng âm thanh thứ bảy:

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

Cũng thấy


Điều này làm tôi bối rối một chút. Bạn có thể cung cấp lệnh đầy đủ? Có, tôi đang nhắm mục tiêu kích thước tệp đầu ra cụ thể.
JoeSteiger

@JoeSteiger Bạn nên cập nhật câu hỏi của mình bằng cách cung cấp đầu ra giao diện điều khiển đầu ffmpeg -i input.mkvtiên.
llogan

Là ở trên những gì bạn có ý nghĩa?
JoeSteiger

@JoeSteiger Vâng, điều đó rất hữu ích.
llogan

K, cho tôi biết phải làm gì tiếp theo.
JoeSteiger

13

bạn có thể sử dụng -map 0 để đảm bảo rằng tất cả các luồng được sao chép. Nếu không thể với định dạng, ffmpeg sẽ báo lỗi.

-map 0 yêu cầu ffmpeg / libav bao gồm tất cả các luồng, không chỉ các luồng mà bạn đã xác định quy tắc kết luận.

Thông thường -map được sử dụng để xác định ánh xạ luồng - tức là luồng 1 trong đầu vào sẽ trở thành luồng 0 trong đầu ra. Chỉ với -map 0, bạn yêu cầu ffmpeg / libav lấy tất cả các luồng mà không xáo trộn.


Bạn có thể giải thích thêm một chút?
Kaz Wolfe

Tôi đã chỉnh sửa câu trả lời của mình
Arne Babenhauserheide

1

Nếu bạn chỉ muốn thực hiện chuyển đổi đơn giản sang mp4, bạn có thể sử dụng VLC. VLC sẽ chấp nhận một tập tin phụ đề và đưa nó vào đầu ra.

Đối với các chuyển đổi phức tạp hơn, bao gồm tạo kiểu phụ đề, bạn có thể sử dụng OpenShot.


-1

Vâng, tôi tìm thấy một cách để làm cho nó hoạt động, không lý tưởng, nhưng nó hoạt động. Tôi có thể thêm một srt vào video bằng mkvmerge. Chỉ có sự sụp đổ là nó làm cho video mkv chứ không phải mp4.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.