Tôi mới đến ffmpeg
và tôi đang cố gắng tìm cách chuyển đổi tệp âm thanh hoặc video từ định dạng này sang định dạng khác. Tôi không muốn sử dụng CLI
, tôi chỉ muốn biết nếu tôi có thể sử dụng ffmpeg
làm thư viện và gọi hàm để chuyển đổi tệp từ định dạng này sang định dạng khác. Tôi đã đi qua các tài liệu và tìm thấy các chức năng avcodec_encode_audio
và avcodec_encode_video
nhưng nó không rõ ràng làm thế nào tôi có thể sử dụng điều này để chuyển đổi. Một hướng dẫn hoặc một ví dụ sẽ rất hữu ích.Sử dụng ffmpeg chuyển đổi tệp từ một định dạng sang một định dạng khác
10
A
Trả lời
9
thường tôi làm điều này bằng dòng lệnh
ffmpeg -i input.mp4 -vcodec copy -acodec copy out.mkv
đây i/p tập tin là input.mp4 mà sẽ được chuyển đổi thành out.mkv với có cùng codec của tất cả các tiểu suối
LƯU Ý: Lệnh trên sẽ chỉ hoạt động khi tất cả codec của input.mp4 sẽ được hỗ trợ bởi .mkv container.
và nếu bạn không phải là mối quan tâm với bộ giải mã sau đó sử dụng
ffmpeg -i input.mp4 out.mkv
này sẽ chuyển đổi mp4 để mkv (nếu cần thiết nó cũng sẽ thay đổi codec của định dạng đầu ra)
Đó là 'CLI' Command Line Interface cách thức chuyển đổi;) Tôi đang lập kế hoạch để gọi một hàm được định nghĩa trong thư viện 'ffmpeg' từ chương trình của tôi nếu có thể. – Pannu
hey người đàn ông tốt đẹp câu trả lời .. Tuy nhiên tôi không chắc chắn làm thế nào để giải quyết điều này codec .. thường tôi không chỉ định định dạng codec (tức là tôi chỉ làm 'ffmpeg -i inputFile outputFile', tuy nhiên bây giờ mà tôi đang chuyển đổi từ mp4 sang mp3 .. Tôi nhận được lỗi này: 'Encoder (codec none) không tìm thấy cho dòng đầu ra # 0: 0' .. xem lệnh đầy đủ và nhật ký lỗi [ở đây] (https://gist.github.com/abbood/7702597) – abbood
@abbood cảm ơn người đàn ông .. Đã 2 năm kể từ khi tôi làm việc trên ffmpeg, vì vậy không biết nhiều chi tiết nhưng có vẻ như định dạng container của outputFile của bạn hỗ trợ thư viện mã hóa codec không được cài đặt hoặc không được hỗ trợ ffmpeg của bạn vì vậy cần phải cài đặt hoặc cung cấp cho tên codec được hỗ trợ để mã hóa luồng của CLI –