Cách tốt nhất để trích xuất âm thanh từ một tập tin video là gì?


19

Tôi là một fan hâm mộ lớn của HandBrake . Đó là mẫu mực của đơn giản. Chọn tệp video (hoặc DVD), chọn cài đặt trước, chọn đường dẫn đầu ra, nhấp Bắt đầu. Một lượng thời gian nhất định sau đó liên quan đến kích thước / chất lượng của nội dung và bạn có cho mình một tệp video khá hoàn hảo phù hợp với phương tiện bạn chọn.

Tôi đã tìm kiếm những phẩm chất tương tự trong Bộ chuyển đổi âm thanh và tốt nhất là Bộ trích xuất âm thanh (từ một tệp video đã cho). Tôi rất thích có thể kéo tệp video vào một ứng dụng, chỉ định rằng tôi muốn Tệp âm thanh trong AAC ở tốc độ bit cho trước, nhấp vào Bắt đầu và để ứng dụng làm phần còn lại.

Tôi không phản đối việc sử dụng Handbrake để đáp ứng khía cạnh chuyển đổi của điều này, miễn là việc trích xuất âm thanh sau thực tế là một quá trình đơn giản. Vấn đề là thực hiện càng ít bước càng tốt.

Bất cứ lời khuyên? Ứng dụng? Ý tưởng?


Phân hạch là một tiện ích tốt để trích xuất Dữ liệu âm thanh từ Video FIle và tôi đã sẵn sàng thực hiện theo cách cũ, theo dõi theo dõi, theo cách thủ công. Không phải sở thích của tôi. Sau đó tôi đã có ý tưởng về Applescript nó, nhưng thật không may, có vẻ như Fudge không có AS Dictionary.
Jason Salaz

@Jason đã xem xét một số kịch bản UI để nói chuyện với Phân hạch?
Nathan Greenstein

Đó có phải là Applescript nguyên thủy khi một ứng dụng nhất định không có từ điển? Nhấp vào menu có tên "Tệp". Nhấp vào mục menu có tên "Lưu". Thứ nhiều hay ít như thế?
Jason Salaz

@Jason vâng. Nhưng có thể tốt hơn là làm bằng tay, tùy thuộc vào số lượng bạn dự định thực hiện.
Nathan Greenstein

Tôi tình cờ thấy một mục trong Câu hỏi thường gặp của Handbrake hôm nay: I just want audio, not video. Can I do that? Not with HandBrake, no. You could just encode the video at a low resolution with a fast low quality encoder like ffmpeg, then extract the audio track. Or you could use OSEx . Thật không may, đó chỉ là PPC. Booooo!
Jason Salaz

Câu trả lời:


22

Cuối cùng tôi đã tìm thấy sự kết hợp chính xác mà tôi cần, và tôi đã tìm thấy nó trong ffmpeg .

Tôi sẽ mở rộng câu hỏi một chút và đánh vần sự thật rằng tôi đã làm việc với mp4 có chứa video / âm thanh, vì vậy Video MP4 (.m4v) và AAC Audio (.m4a). Tôi hoàn toàn muốn có một phiên bản âm thanh được trích xuất từ ​​video.

Trước hết, thật dễ dàng để cài đặt những thứ như ffmpeg, mplayer, những thứ được tạo ra từ chúng và các gói nguồn mở tương tự hiện nay. Giữa Rudix , Homebrew , MacPorts và Fink (có ai còn sử dụng fink nữa không?), Phần mềm của bên thứ ba rất dễ cài đặt.

Vì vậy, sau khi cài đặt ffmpeg và có ffmpegthể truy cập tại dòng lệnh, tôi đã chạy một lệnh như thế này:

ffmpeg -i videofile.mp4 -vn -acodec copy audiotrack.m4a

ffmpeg : Lệnh.

-i videofile.mp4 : Tệp video nguồn.

-vn : Không ghi lại (không xem xét) dữ liệu video.

-acodec copy : Sao chép nguồn âm thanh nguyên trạng, đây là nơi tất cả các phép thuật. ffmpeg sẽ ghi dữ liệu âm thanh ra dưới dạng các codec được hỗ trợ khác nhau, nhưng việc chỉ định bản sao dẫn đến một bản sao chính xác từng bit của luồng. Kết hợp với việc vô hiệu hóa video qua -vn để lại cho bạn một đoạn âm thanh đơn độc bên trong thùng chứa mp4.

audiotrack.m4a : Tên tệp đầu ra.

Tôi không thể tin được điều gì đó như thế này lại quá khó khăn và bị che giấu quá lâu.

Vì tôi luôn có ý định trích xuất dữ liệu âm thanh aac ra khỏi thùng chứa mp4 / video, tôi đã viết một đoạn script nhỏ để thực hiện.

#!/bin/bash

INFILE="$1"
TMPOUTFILE="${INFILE%.*}"
OUTFILE="${TMPOUTFILE##*/}.m4a"

ffmpeg -i "${INFILE}" -vn -acodec copy "${OUTFILE}"

Bây giờ, tôi chỉ cần gọi rip_m4a_from_mp4 somevideofile.mp4và tôi chỉ còn lại một phiên bản âm thanh có cùng tên tệp, kết thúc bằng m4a.

Đơn giản! Đối với tôi dù sao đi nữa. Không có GUI, nhanh như chớp, đây chỉ là một trong những điều mà dòng lệnh làm tốt hơn.


Rất có thể, bạn có thể thay thế m4atrên dòng 5 bằng $2và chỉ định phần mở rộng mới trên dòng lệnh. Theo cách đó, nếu bạn đang làm việc với một cái gì đó khác và biết âm thanh là gì, bạn có thể chỉ định nó. Tôi có thể tự làm điều này và thay đổi tên tập lệnh thành 'rip_audio_from_video'. Chung!
Jason Salaz

Để bắt đầu. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"sau đó brew install ffmpeg. Bây giờ làm theo các hướng dẫn ở trên.
boyfarrell

Trang chủ homebrew là brew.sh . Sau khi làm theo các hướng dẫn trên trang đó (chỉ trong trường hợp chúng thay đổi) , brew install ffmpeg. Và sau đó, có, sau đó bạn có thể làm theo các bước của tôi.
Jason Salaz

2
Nếu bạn làm muốn tái mã hóa âm thanh sang định dạng khác, ffmpegcó thể làm điều đó trong cùng một lệnh. Ví dụ: ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3( catswhocode.com/blog/19-ffmpeg-commands-for-all-need )
alexw

1
@alexw đảm bảo bạn chỉ định 192k chứ không phải 192. Nếu không, nó sẽ rơi trở lại mã hóa 128kbit / s.
smets.kevin

12

Bạn có thể thực hiện việc này trực tiếp trong Finder, bắt đầu với Mac OS X 10.7 (Lion), như được mô tả tại OSX Daily .

Câu trả lời ngắn gọn là, chọn tệp hoặc tệp trong Trình tìm kiếm, sau đó ctrlbấm và chọn Dịch vụ -> Mã hóa Tệp video đã chọn .

Lưu ý rằng bạn có thể cần kích hoạt dịch vụ này trong ngăn tùy chọn Bàn phím .

nhập mô tả hình ảnh ở đây


Ồ Rât thuận tiện! Một lý do khác để sử dụng máy Mac!
Javad Sadeqzadeh

Trong trường hợp của tôi, kích thước của m4atệp kết quả so với việc sử dụng ffmpeglớn hơn gấp 3 lần. Có thể là một mối quan tâm, đặc biệt là đối với các tập tin lớn hơn.
Casimir

6

Tôi sẽ kéo bộ phim vào GarageBand. GarageBand sẽ chia tệp thành âm thanh và video, tại thời điểm đó bạn có thể xóa bản nhạc video (chỉ để lại bản nhạc âm thanh).

Sau đó, bạn có thể nhấp vào tùy chọn Gửi bài hát tới iTunes trong menu Chia sẻ (xem pic). Điều này sau đó sẽ đưa ra các định dạng khác nhau mà bạn muốn xuất sang.

nhập mô tả hình ảnh ở đây

Tuyệt vời nhất, điều này là miễn phí :) vì tất cả các máy Mac đều đi kèm với GarageBand. Thêm vào đó, nó cũng cho phép bạn điều chỉnh các khía cạnh của âm thanh như tốc độ và âm lượng.

Đã nói rằng, nếu bạn muốn một giải pháp thực sự tự động và thoải mái trong dòng lệnh với Terminal, hãy cho tôi biết trong các nhận xét và tôi sẽ đưa ra một kịch bản để cho phép bạn làm điều này.


Tôi không có ý định làm điều này vì một lý do (trừ khi tôi sai, xin vui lòng sửa lỗi cho tôi): Giải nén. Các tệp video đã có dữ liệu âm thanh được nén đáng kể và tôi muốn bảo tồn dữ liệu âm thanh gốc càng nhiều càng tốt. Tính năng sát thủ của Fudge là "chỉnh sửa và xem lại không mất dữ liệu". Thậm chí không đề cập đến việc GarageBand thực sự rất chậm đối với các nhiệm vụ như thế này: /. Tuy nhiên, đây là một giải pháp tuyệt vời cho một nhiệm vụ hoàn thành chủ đề, vì vậy tôi đã +1 bạn cho khía cạnh đó.
Jason Salaz

4

Quicktime 7 sẽ thực hiện công việc thực sự dễ dàng.

Chỉ cần mở video và đi đến Tệp > Xuất > Âm thanh sang AIFF / AU / Wave > chọn đường dẫn của bạn và bạn đã hoàn tất! :)


Có vẻ như tôi có thể cần tìm đĩa Snow Leopard của mình ...
Jason Salaz

@vxjasonxv bạn không cần phải làm vậy. Bạn có thể tải xuống qua liên kết được cung cấp ..
năm11

Ồ cảm ơn! Tôi đã không thực sự nghĩ rằng liên kết sẽ thực sự theo cách đó.
Jason Salaz

1
Liệu cạm bẫy tương tự mà tôi đã thêm vào câu trả lời của Rob có áp dụng ở đây không? Tôi có thể "lưu một làn sóng" âm thanh, nhưng nó đã được nén và theo lý thuyết để sử dụng nó, tôi phải giải nén lại nó, điều mà tôi không nên làm.
Jason Salaz

4

QuickTime Player 10 cũng có thể xuất âm thanh (không cần mã hóa lại).

Chọn Tệp> Xuất> Chỉ âm thanh

Đã thử nghiệm trên macOS 10.12 Sierra với QuickTime Player 10.4.


1
Nhưng điều đó có mã hóa lại âm thanh không?
Jason Salaz

1
@JasonSalaz Không, chỉ cần giải nén. Đây là IMHO một lựa chọn tốt hơn. Nó là khá nhanh chóng và bảo tồn chất lượng. Hơn nữa, bạn có thể mã hóa lại bất cứ lúc nào sau đó.
Melebius

1
Tuyệt vời. Câu trả lời ffmpeg của tôi cũng chỉ được giải nén nên có lẽ nó chỉ mất nhiều thời gian như QuickTime. Lợi ích của ffmpeg là nó không có trọng lượng tải UI vốn có, do đó, nó chắc chắn sẽ nhanh hơn ở 1 tệp và nhanh hơn theo cấp số nhân ở nhiều tệp. Nhưng đây là một câu trả lời tuyệt vời cho một người thành thạo Automator / Applescripting, và có lẽ không thoải mái với dòng lệnh hoặc với kịch bản shell.
Jason Salaz

0

Tôi chỉ cần mở tệp video với độ táo bạo và sau đó xuất âm thanh. Tôi có thể đặt các tham số tệp âm thanh đã xuất trong quá trình xuất.


Đặt tham số tệp âm thanh có nghĩa là mã hóa lại âm thanh. Audacity có tùy chọn chuyển qua (trích xuất không thay đổi) không?
Jason Salaz
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.