Chuyển đổi mp4 sang Mp3 với hình thu nhỏ


8

Tôi có thể chuyển đổi mp4 sang mp3 trong ffmpeg, nhưng tôi không chắc mình sẽ thêm hình thu nhỏ của video như thế nào.

Hiện tại có cái này để chuyển đổi từ mp4 sang mp3

ffmpeg -i video.mp4 -acodec libmp3lame -metadata title=video -b:a 256 -f input.mp3

Sau đó tôi có phải chạy nó thông qua ffmpeg một lần nữa với lệnh này không?

ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3

hoặc có cách nào để sử dụng các bộ lọc phức tạp để đạt được điều này không?

Tôi biết rằng điều này hoạt động cho FLV nhưng nó dường như không hoạt động cho mp4

ffmpeg -i video.flv -i cover.jpg -map 0:a -map 1 -c:v copy -metadata title=video -b:a 256k out.mp3

Bạn có thực sự muốn chuyển đổi để tự động thiết lập hình thu nhỏ? Bởi vì nếu không, bạn có thể thay đổi nó bằng tay nhưng tôi không chắc liệu bạn có sau đó không. Nếu bạn có thể làm điều đó với FLV nhưng không phải với MP4, tôi sẽ chỉ tạo một tập lệnh chạy cả hai lệnh.
RamonRobben

@RamonRobben Tôi đang cố gắng tránh phải chạy ffmpeg hai lần
nadermx

bạn có thể thử một cái gì đó như thế này v comment = "Cover (Front)" out.mp3 Tôi đang tải xuống ffmpeg để bắt đầu thử nghiệm với nó.
RamonRobben

Câu trả lời:


3

Câu trả lời tốt hơn , với lời giải thích, kết hợp các đề xuất thông minh từ slhck và Mulvya, tước bỏ các tham số không cần thiết.

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -b:a 256k -c:v copy -map 0:a:0 -map 1:v:0 output.mp3

ffmpeg công cụ quản lý âm thanh / video: đã được OP chọn, nó đặc biệt phù hợp với công việc này.

-i video.mp4 tập tin đầu vào đầu tiên: một video với một số âm thanh mà chúng tôi muốn trích xuất.

-i cover.jpg tệp đầu vào thứ hai, một hình ảnh mà chúng tôi muốn hiển thị khi chúng tôi phát tệp âm thanh kết quả.

-acodec libmp3lame chúng tôi muốn tạo tệp .mp3, sử dụng bộ mã hóa LAME.

-b:a 256kcái này đặt bitrate cho rãnh âm thanh thành 256Kb / s không đổi. Tùy chọn thông minh hơn sẽ là mã hóa với tốc độ bit thay đổi, chỉ định tham số chất lượng : -q:a 0yêu cầu chất lượng tối đa, trong khi -q:a 4thường thể hiện sự thỏa hiệp tốt giữa chất lượng âm thanh và bitrate nhận biết (và do đó, kích thước tệp).

-c:v copyđiều này chỉ ra rằng luồng video (hình ảnh .jpg) không được mã hóa lại mà phải được sao chép như hiện tại. Điều này rất hữu ích để tránh xử lý không cần thiết và mất chất lượng tiềm năng khi mã hóa lại thành định dạng mất dữ liệu. Trong trường hợp của chúng tôi, nếu không có tham số này, hình ảnh sẽ được giải mã từ .jpg và được mã hóa thành .png, rõ ràng là định dạng gốc được chọn theo mặc định. Điều này sẽ không thể hiện sự mất chất lượng vì .png là sự mất mát, nhưng thường xuyên hơn sẽ không làm cho kích thước tệp tăng lên, do thực tế là .jpg (bị mất) thường cung cấp tốc độ nén tốt hơn.

-map 0:a:0cái này chọn luồng được sử dụng từ 0:tệp đầu vào ( ) đầu tiên : nó phải là luồng :0âm thanh ( a) đầu tiên mà nó chứa.

-map 1:v:0cái này chọn luồng :0video ( v) đầu tiên ( ) từ 1:tệp đầu vào thứ hai ( ).

output.mp3 tên của tham số này đã được chọn một cách khéo léo để đề xuất rằng đây phải là tên được đặt cho tệp âm thanh đầu ra (.mp3) với hình ảnh kết hợp mà chúng tôi muốn tạo.

Câu trả lời gốc

Điều này tạo ra một tệp âm thanh (.mp3) với một hình ảnh tĩnh bằng cách ghép một video (.mp4) và một hình ảnh (.jpg) từ đám cưới của tôi:

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -metadata title=video -b:a 256k -map_metadata 0 -map 0:1 -map 1 output.mp3

Xem tài liệu ffmpeg về cách chọn luồng đầu vào -map, đây là tùy chọn có liên quan ở đây.

Lần đầu tiên tôi chạy lệnh đơn giản -map 0 -map 1và nhận được thông tin này:

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> png (native))
  Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
  Stream #1:0 -> #0:2 (mjpeg (native) -> png (native))

Vì vậy, tôi biết tôi muốn truyền phát 1(âm thanh aac) từ tệp có số chỉ mục là 0, tức là tệp video; do đó nó phải được chọn rõ ràng với -map 0:1 -map 1.


Tôi đã thử cái này, nhưng nó mang lại cho tôi Stream map '0:1' matches no streams. To ignore this, add a trailing '?' to the map.
nadermx

Chạy nó với ắc-đồ 0 -map 1 và xem các luồng có sẵn là gì.
simlev

Stream mapping: Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame)) Stream #1:0 -> #0:1 (mjpeg (native) -> png (native))
nadermx

1
@nadermx Bạn có thể làm -map 0:a:0 -map 1:v:0để chọn luồng âm thanh và video đầu tiên của tệp thứ nhất và thứ hai, tương ứng.
slhck

1
Tránh mã hóa đầu vào hình ảnh, đặc biệt là với JPG. -c:v copy.
Gyan ngày

2

bạn có thể sử dụng trình phát phương tiện vlc -

Bước 1: Mở VLC và chọn Truyền thông trực tuyến. Nhấp vào chuyển đổi / lưu.

Bước 2: Trên cửa sổ tiếp theo xuất hiện, hãy chọn thêm add add và chọn tệp video (MP4) để chuyển đổi.

Bước 3: Tiếp theo, nhấp vào mũi tên xuống trên Chuyển đổi / Lưu trữ, sau đó nhấp vào Chuyển đổi trực tuyến.

Bước 4: Trên cửa sổ tiếp theo xuất hiện, hãy đảm bảo đã chọn nút Chuyển đổi trực tuyến. Tiến hành để chọn loại tệp âm thanh bạn muốn tạo. Trong trường hợp của chúng tôi, tệp MP3 của nó, chúng tôi đang chuyển đổi sang.

Bước 5: Chọn một điểm đến đầu ra, sau đó nhấn vào Bắt đầu. VLC sau đó sẽ bắt đầu chuyển đổi.

để thêm hình thu nhỏ, bạn có thể tham khảo liên kết này (giải thích rất rõ).

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.