Tôi có 1 hình ảnh (jpg) và 1 tệp âm thanh (MP3) và tôi muốn xuất tệp này dưới dạng tệp video (ví dụ AVI).
Có ai biết cách sử dụng FFMPEG để tham gia hai không? Tôi muốn hiển thị hình ảnh trong suốt thời gian của âm thanh.
Có ai có ý kiến gì không?
Tôi có 1 hình ảnh (jpg) và 1 tệp âm thanh (MP3) và tôi muốn xuất tệp này dưới dạng tệp video (ví dụ AVI).
Có ai biết cách sử dụng FFMPEG để tham gia hai không? Tôi muốn hiển thị hình ảnh trong suốt thời gian của âm thanh.
Có ai có ý kiến gì không?
Câu trả lời:
Nếu bạn đang ở trong Windows, bạn cũng có thể làm điều đó trong nhà sản xuất Windows Movie ... nếu bạn cần hướng dẫn, vui lòng để lại nhận xét
Đối với FFmpeg, hãy sử dụng cái này
ffmpeg -loop_input -vframes 14490 -i imagine.jpg -i audio.mp3 -y -r 30
-b 2500k -acodec ac3 -ab 384k -vcodec mpeg4 result.mp4
vframes 14490 là số lượng khung hình cần được lặp để có hình ảnh liên tục cho toàn bộ tệp audio.mp3
Ví dụ: Trong 8 phút và 3 giây ((8m x 60s + 3s) x 30fps = 14490 vf)
Tài nguyên từ đây
Có một cách đơn giản hơn nhiều so với những cách được đề xuất ở đây, đó là không yêu cầu tính toán số lượng khung hoặc nhập độ dài của các tệp riêng lẻ (đặc biệt tốt hơn để xử lý hàng loạt). Với phiên bản gần đây của ffmpeg, bạn có thể sử dụng -shortesttùy chọn dừng mã hóa khi luồng ngắn nhất kết thúc - trong trường hợp này là input.mp3 (vì hình ảnh sẽ lặp lại mãi mãi, nó có độ dài vô hạn):
ffmpeg -i input.mp3 -f image2 -loop 1 -r 2 -i input.jpg \
-shortest -c:a copy -c:v libx264 -crf 23 -preset veryfast output.mp4
Điều này sử dụng 2 khung hình mỗi giây cho hình ảnh / video, điều này sẽ ổn, nhưng bạn có thể đặt nó thành 25 tiêu chuẩn hơn nếu bạn muốn.
subanki gần như đã có nó đúng. Dòng lệnh làm việc như sau;
ffmpeg -y -loop 1 -i image.jpg -i audio.mp3 -r 30 -b:v 2500k -vframes 14490 -acodec libvo_aacenc -ab 160k result.mp4
ghi đè tập tin đầu ra mà không cần nhắc
Tùy chọn '-loop_input' không được sử dụng -loop 1. Xem tài liệu ffmpeg .
tập tin đầu vào
Số khung hình mỗi giây
cũng có thể được biểu thị là: -r 30000/1001 cho khung hình / giây là 29,97nnn
tốc độ bit video; số càng cao, chất lượng càng tốt và kích thước tệp càng lớn.
Như đã giải thích ở trên; lấy tổng thời gian của tệp âm thanh của bạn tính bằng giây (ví dụ 00:02:41 (2 phút 41 giây) bằng 161 tổng số giây (2 x 60) + 41). Sau đó nhân tổng số giây với Số khung hình mỗi giây mà bạn đã chỉ định với -r (ví dụ: 161 x 30 = 4830).
-vframes có thể được thay thế bằng -t 161 (bản ghi thời lượng -t hoặc mã hóa thời lượng trong thời gian có thể có giây của âm thanh / video)
Sử dụng codec âm thanh chính xác cho loại tệp bạn đang tạo. Đối với .mp4 phải là định dạng AAC. Codec libvo_aacenc là codec mã hóa chính xác cho hệ thống Windows 7 của tôi.
tốc độ âm thanh
Đây là tên của tệp đầu ra. Nó có thể là bất kỳ tên tập tin hợp pháp cho hệ thống của bạn. Tiện ích mở rộng sẽ giúp ffmpeg xác định codec video phù hợp nếu bạn không chỉ định sử dụng -vcodec.
Tập lệnh bash / cygwin đơn giản mà AUTOMAGICALLY sẽ mã hóa tất cả các tệp của phần mở rộng $ AUDIO trong thư mục thành tệp video mp4 10FPS trong thư mục có nhúng thư mục hình ảnh,
hữu ích cho tải lên youtube;)
AUDIO=m4a;
$'\n'; for a in `ls -1 *.$AUDIO `; do ffmpeg -i $a &2> $a.info ; done;
cat '' > do.sh
IFS=$'\n';
for a in `ls -1 *.$AUDIO`; do D=`grep Duration $a.info | cut -d',' -f1 | cut -d' ' -f4 | cut -d'.' -f1 | head -n1 `; S=$(( $( echo $D | cut -d':' -f2 ) * 60 + 1 + ` echo $D | cut -d':' -f3 ` )) ; echo ffmpeg -loop_input -vframes $(( $S * 10 )) -i folder.jpg -i \"$a\" -y -r 10 -b 2500k -ab 384k -vcodec mpeg4 \"$a.mp4\" >> do.sh; done;
split -l5 do.sh
xa* &
Tải xuống VirtualDub , sau đó làm điều này:
Mở hình ảnh như bạn sẽ mở một tập tin video bình thường.
Tính thời lượng của âm thanh tính bằng giây và làm tròn nó đến toàn bộ giây gần nhất (ví dụ: 78,34 giây trở thành 79 giây). Giá trị này được gọi là x từ bây giờ.
Chuyển đến "video> tốc độ khung hình" chọn "thay đổi thành tốc độ khung hình (khung hình / giây)" và nhập "1 / x" làm giá trị. Ngoài ra, nếu bạn muốn có tốc độ khung hình bình thường trong tệp kết quả như 25 khung hình / giây, chọn "Chuyển đổi thành khung hình / giây" và nhập tốc độ khung hình mong muốn trong đó.
Chọn "video> nén" và chọn hương vị yêu thích của bạn. Có thể là bạn cần điều chỉnh kích thước của hình ảnh bằng bộ lọc thay đổi kích thước.
Chuyển đến "âm thanh> âm thanh từ tệp khác" và chọn âm thanh của bạn ở đó. Nếu cần chọn nén cho âm thanh.
Lưu các tập tin.
Nguồn: stephanV