Lệnh trích xuất âm thanh từ video mà không cần chuyển đổi


25

Tôi biết rằng flvmp4các tập tin có chứa aacâm thanh, trong khi avivideo thường là mp3luồng âm thanh.

Lệnh nào (avconv, ffmpeg) sẽ trích xuất âm thanh mà không cần chuyển mã?

audio  video 

Bạn có thể quan tâm đến tập lệnh PHP do tôi tạo, mà tôi sử dụng để tự động xác định phần mở rộng của tệp âm thanh đầu ra.
Gras đôi

Câu trả lời:


29
ffmpeg -i video.mp4 -vn -acodec copy audio.aac

Đây là một lời giải thích ngắn về những gì mọi tham số làm:

  • -i tùy chọn chỉ định tệp đầu vào.
  • -vn tùy chọn được sử dụng để bỏ qua phần video.
  • -acodec copy sẽ sao chép luồng âm thanh giữ codec gốc.

trong khi video mp4 chứa âm thanh aac, không phải mp3, đó có phải là giữ luồng âm thanh mà không chuyển mã?

1
Không quan tâm đến phần mở rộng tập tin đầu ra, lỗi của tôi. Cập nhật câu trả lời. Dù sao, nếu bạn đọc câu trả lời đầy đủ, bạn sẽ tìm thấy bản sao -acodec đó, điều này tránh chuyển mã.
jherran

tôi đề nghị m4a (container cho aac) thay vì aac, vì có vẻ như nó không dễ chơi

Có thể, trong khi sử dụng ffmpeg hoặc avconv, để có một lệnh mà không đề cập đến tên thật của các tệp đầu vào / đầu ra, để lệnh được sử dụng như vậy? (tôi muốn sử dụng nó trong một hành động menu ngữ cảnh trong trình quản lý tệp nemo)

1
Bạn có thể muốn sử dụng một biến hoặc một cái gì đó tương tự, nhưng tốt hơn là bạn hỏi một câu hỏi với tất cả các chi tiết cụ thể.
jherran

4

Là một câu trả lời bổ sung, với một lệnh không cần tên cụ thể của tệp.

Đối với video có chứa âm thanh aac:

ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a

Để sử dụng trong lệnh menu ngữ cảnh, một biểu mẫu như thế này hoạt động:

bash -c 'ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a' %f 

Thay thế bằng đầu ra định dạng âm thanh tương ứng cho đầu vào định dạng video khác.


Nguồn ban đầu ở đây .

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.