2012-08-26 33 views
16

Tôi đang cố gắng để chuyển đổi một số file video có chứa đoạn video , âm thanhphụ đề suối sang định dạng khác sử dụng FFMpeg. Tuy nhiên, ffmpeg phàn nàn về định dạng phụ đề - nó không thể giải mã luồng. Vì tôi không cần dòng phụ đề này, tôi muốn biết làm cách nào để tắt tính năng giải mã luồng phụ đề trong khi chuyển đổi?Làm thế nào để vô hiệu hóa phụ đề giải mã trong ffmpeg

+0

xóa phụ đề cũng hữu ích để tránh các khiếu nại ghép kênh. Mặc dù VLC cho thấy một số siêu dữ liệu là phụ đề, để loại bỏ điều đó bằng ffmpeg bạn sẽ cần '-map_metadata -1' –

Trả lời

36

Cuối cùng tôi đã tìm thấy câu trả lời.

Có tùy chọn như -sn để vô hiệu hóa phụ đề giải mã từ luồng đầu vào. Ngoài ra còn có các tùy chọn tương tự để giải mã âm thanh và video: và -vn tương ứng.

Nó cũng bật ra rằng có một cách khác để đạt được điều này. Người ta có thể sử dụng tùy chọn -map để chọn luồng sẽ được giải mã. Vì vậy, bỏ qua dòng phụ đề trong số các tùy chọn -map thực hiện công việc.

Ví dụ, nếu một người có một tập tin phim với 3 dòng:

  • Suối 0: video
  • Suối 1: âm thanh
  • Suối 2: phụ đề

lệnh chuyển đổi cho FFmpeg có thể trông giống như sau:

ffmpeg -i <input file> -sn -vcodec <video codec> -acodec <audio codec> <output file> 

hoặc

ffmpeg -i <input file> -vcodec <video codec> -acodec <audio codec> -map 0:0 -map 0:1 <output file> 

Cựu dòng lệnh Bỏ chọn dòng phụ đề (có thể là tất cả trong số họ, nếu có một số) trong khi sau một chọn chỉ các dòng cần thiết để giải mã.

+0

+1 Cách tiếp cận đầu tiên (tùy chọn -sn) hoàn toàn hoạt động, cảm ơn. (Đã thử nó trên một tập tin mkv.) – Sabuncu

+3

Hoạt động tuyệt vời! Nếu bạn chỉ đơn giản là loại bỏ các subs từ một file video mà không cần mã hóa lại thì nó hoạt động rất nhanh: 'ffmpeg -i video.mkv -vcodec copy -acodec copy -sn video-no-subs.mkv' – cherouvim

Các vấn đề liên quan