Chuyển đổi video và âm thanh cụ thể chỉ với ffmpeg


26

Tôi có một tệp MKV ( vidui.mkv) với 6 bài hát trong đó.

Track 1 - video - xvid - 1920x1080
Track 2 - video - xvid - 720x576
Track 3 - audio -  AAC - 1240kbps - English
Track 4 - audio -  AAC - 648kbps - Spanish
Track 5 - audio -  AAC - 648kbps - Commentary 1
Track 6 - audio -  AAC - 648kbps - Commentary 2

Tôi muốn chuyển đổi tập tin trên thành định dạng mp4 với một video h264 và một âm thanh AC3. Ngoài ra tôi muốn chuyển đổi track 1 (video) và track 5 (audio).

Nếu tôi sử dụng

ffmpeg.exe -i vidui.mkv -f mp4 -vcodec libx264 -acodec ac3 -crf 20 -sn -n vidui.mp4

nó chuyển đổi bản nhạc video đầu tiên và bản nhạc âm thanh đầu tiên, nhưng điều tôi muốn nó làm là chuyển đổi bản nhạc 1 và bản nhạc 5.

Câu trả lời:


43

Bạn có thể sử dụng -maptùy chọn ( tài liệu đầy đủ ) để chọn các luồng đầu vào cụ thể và ánh xạ chúng tới đầu ra của bạn.

mapCú pháp đơn giản nhất bạn có thể sử dụng là -map i:s, iID tệp đầu vào ở đâu và slà ID luồng, cả hai đều bắt đầu bằng 0. Trong trường hợp của bạn, điều đó có nghĩa là chúng tôi chọn theo dõi 04:

ffmpeg -i vidui.mkv -c:v libx264 -c:a ac3 -crf 20 -map 0:0 -map 0:4 vidui.mp4

Nếu bạn muốn chọn các bản nhạc, video hoặc phụ đề cụ thể, bạn cũng có thể sử dụng các công cụ xác định luồng :

ffmpeg -i vidui.mkv -c:v libx264 -c:a ac3 -crf 20 -map 0:v:0 -map 0:a:1 vidui.mp4

Ở đây, 0:v:0là luồng video đầu tiên và 0:a:1là luồng âm thanh thứ hai.


Có cách nào để làm điều này một cách năng động? Nói rằng tôi chỉ muốn làm điều này với các bản âm thanh của ngôn ngữ X, và có ffmpeg chọn cái này không?
Freedo

@Freedo Vâng, vui lòng xem tài liệu. Ví dụ-map 0:m:language:eng
slhck
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.