android ffmpeg สร้าง mp4 พร้อมบิตแมป (ไม่มี jpg)


1

ในแอพ Android ของฉันฉันมีชุดของบิตแมปที่สร้างโดยวิธีนี้:

public Bitmap createFrame(int i) {
    Bitmap bitmap = Bitmap.createBitmap(800, 800, Bitmap.Config.ARGB_8888);
    .
    .
    return bitmap;
}

ตอนนี้ฉันต้องการสิ่งนี้สำหรับคำสั่ง ffmpeg สำหรับการแปลงบิตแมปทั้งหมดเป็นวิดีโอ mp4 หนึ่งรายการ:

for (int i=0; i<500; i++) {
    Bitmap frame = frameBitmap(i);
    String cmd = "ffmpeg -y -i <<all frameBitmap">> ... libx264 ... output.mp4"
}

วิธีใช้หนึ่งคำสั่งกับชุดของบิตแมป

คำตอบ:


2

ท่อเป็นอินพุต

หากรูปภาพของคุณสามารถไพพ์ออกมาจากสิ่งที่สร้างพวกเขาคุณสามารถใช้โปรโตคอลท่อ ตัวอย่างที่จะอ่านจาก stdin:

ffmpeg -framerate 10 -i pipe:0 -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4

หรือคุณสามารถใช้ pipe: หรือธรรมดา - ทำสิ่งเดียวกัน

ดู เอกสารประกอบพิธีสารท่อ สำหรับข้อมูลเพิ่มเติม

ภาพที่บันทึกไว้เป็นอินพุต

หากคุณมีไฟล์ภาพหลายแบบเช่น img001.bmp, img002.bmpฯลฯ คุณสามารถใช้:

ffmpeg -framerate 30 -i img%03d.bmp -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4

หรือคุณสามารถใช้ รูปแบบ glob ซึ่งรองรับไวด์การ์ด:

ffmpeg -framerate 24 -pattern_type glob -i "*.bmp" -c:v libx264 -pix_fmt yuv420p -movflags +faststart output.mp4

ดู เอกสารรูปภาพ demuxer สำหรับรายละเอียด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.