2016-07-02 20 views
8

Làm cách nào để chỉ xóa một bản nhạc (không phải tất cả) khỏi vùng chứa tệp video (.vob hoặc .mkv) bằng ffmpeg?Làm cách nào để xóa một bản nhạc khỏi tệp video bằng ffmpeg?

Tôi biết tôi chỉ có thể sao chép video (-c:v copy -an) và theo dõi âm thanh cụ thể từ vùng chứa thành hai tệp riêng biệt và sau đó tham gia chúng.

Nhưng có cách nào dễ dàng hơn không? Tôi có thể chỉ xóa đoạn âm thanh cụ thể khỏi vùng chứa không? ffmpeg lệnh?

Trả lời

13

Sử dụng negative mapping để loại trừ dòng cụ thể (s):

ffmpeg -i input -map 0 -map -0:a:1 -c copy output 

Ví dụ này sẽ lập bản đồ tất cả mọi thứ ngoại trừ các dòng âm thanh thứ hai.

+0

Ồ, tôi không biết về chức năng lập bản đồ phủ định, tuyệt vời! – v010dya

+0

Tôi gặp sự cố khi tệp đầu ra là .vob ('ffmpeg -i" in.vob "-map 0 -map -0: a: 1 -c copy" out.vob "'): _Invalid loại dữ liệu phương tiện cho luồng đầu ra # 0_ và _Không viết tiêu đề cho tệp đầu ra # 0 (tham số codec không đúng?): Đối số không hợp lệ_ nhưng nếu tôi thay đổi out.vob thành out.ts nó hoạt động 'ffmpeg -i" in.vob "-map 0 -map - 0: a: 1 -c copy "out.ts" ' – user25

+0

@ user25 Tôi cần xem toàn bộ đầu ra bàn điều khiển từ lệnh của bạn. Bạn có thể sử dụng một trang web pastebin và cung cấp liên kết. – LordNeckbeard

2

Bạn đang tìm kiếm -map.

Tôi đã thay đổi thành sử dụng avconv, nhưng nó sẽ giống nhau.

Giả sử bạn có tệp có tên là "input.vob" với một video và hai bản âm thanh; và bạn muốn có "output.vob" với video và âm thanh cuối cùng.

Bạn sẽ làm gì:

avconv -i input.vob -map 0:0 -c:v copy -map 0:2 -c:a copy output.vob 

Bạn nên chú ý rằng:

  1. Tôi không sao chép -map 0:1
  2. tôi không cần phải làm , bởi vì có âm thanh. Tuy nhiên, nếu không có bản âm thanh nào cả, bạn có thể cần phải sử dụng một thuộc tính như vậy.
  3. Đôi khi các luồng không được đánh số theo cách tôi đã mô tả, ví dụ: âm thanh có thể đến trước video.
  4. Nếu có luồng phụ đề ở đó, bạn cũng cần tìm ra cách xử lý chúng.

Bạn không thể làm việc trên tệp "tại chỗ", bạn cần lưu vào tệp khác.

P.S. Bạn có thể muốn đặt câu hỏi như vậy vào video.stackexchange.com lần sau.

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