2012-10-17 65 views
5

Tôi muốn chuyển đổi từ định dạng .flv sang định dạng .h264.Làm thế nào để chuyển đổi video .flv thành định dạng .h264 với FFmpeg?

Sự cố: Tôi đã chuyển đổi từ định dạng FLV sang H264 nhưng video đã chuyển đổi của tôi (.h264) đang chạy quá nhanh (giống như chúng tôi nhấp vào nút tua nhanh).

tôi đã sử dụng lệnh sau:

ffmpeg -i example.flv -sameq -vcodec libx264 -vpre default -ar 22050 output.h264 
+1

Vui lòng cập nhật câu hỏi của bạn để bao gồm đầu ra bàn điều khiển hoàn chỉnh. Không sử dụng '-sameq': [sameq không có nghĩa là" cùng chất lượng "] (http://superuser.com/a/478550/110524). Câu hỏi sử dụng FFmpeg phù hợp hơn cho superuser.com. – LordNeckbeard

Trả lời

13

Giải pháp là bạn cần định dạng vùng chứa. Nguyên h.264 không có bất kỳ thông tin thời gian nào cho một video, đó là lý do tại sao trình phát của bạn phát nhanh.

Đồng thời, lệnh của bạn cũng bị rối tung lên. Bạn có muốn âm thanh trong đầu ra của bạn hay không? Nếu có thì bạn cần chỉ định định dạng vùng chứa sẽ có cả âm thanh và video.

Hoặc thay đổi sản lượng của bạn vào một mp4

ffmpeg -i input_file -c:a copy -c:v libx264 -profile:v baseline out.mp4 

hoặc một số container khác. Nếu bạn muốn một luồng video chỉ xóa các tùy chọn âm thanh và thêm .

Nếu bạn muốn sử dụng âm thanh AAC thay vì bất cứ điều gì các tập tin FLV có:

ffmpeg -i input_file -c:a aac -strict -2 -b:a 128k -c:v libx264 -profile:v baseline out.mp4 

Nếu ffmpeg của bạn không có -c hoặc -profile tùy chọn, cập nhật lên phiên bản mới hơn.

+0

'-vpre' không tồn tại trên bất kỳ phiên bản FFmpeg gần đây nào và cần tránh. Sử dụng '-profile: v' để chỉ định các cấu hình và' -preset slow' vv cho các giá trị đặt trước mã hóa. – slhck

+0

@slhck, cảm ơn con trỏ. – av501

+0

@ av501 lệnh sau đây hoạt động tốt để tạo video mp4 với định dạng h.264 nhưng âm thanh không hoạt động trong IPhone (hoạt động trong điện thoại di động Android) ffmpeg -i example.flv -r 25 -sameq -ab 128kb -vcodec libx264 - vpre mặc định -s 320x240 -b 768kb -ar 44100 -acodec sao chép đầu ra.mp4 và khi tôi sử dụng acodec = aac, ffmpeg hiển thị cho tôi thông báo sau "encoder 'aac' là thử nghiệm và có thể tạo ra kết quả xấu. Thêm 'thử nghiệm nghiêm ngặt' nếu bạn muốn sử dụng nó. " –

-2

Từ chìa khóa kỳ diệu bạn đang tìm kiếm là "khung hình mỗi giây".

Thêm và "-r 30" cho 30 khung hình/giây trong video đầu ra chẳng hạn.

Sebastian

+0

Tôi đã gặp lỗi sau khi lọc MISSING Không có giá trị pts nào từ demuxer để sử dụng cho khung!,?% 0 0 pts after filters MISSING Không có giá trị pts từ demuxer để sử dụng cho khung!?% 0 0 pts after filters MISSING Không có giá trị pts từ demuxer để sử dụng cho frame!,?% 0 0 –

+0

Tôi đã sử dụng -r 30 trong lệnh của mình :: ffmpeg -i example.flv -r 30 -sameq -vcodec libx264 -vpre mặc định -ar 22050 output. h264 nhưng kết quả sẽ không thay đổi, video vẫn chạy nhanh về phía trước –

+0

bạn đã thử với -r 10 chưa? –

Các vấn đề liên quan