ในแอปพลิเคชันของฉันผู้ใช้สามารถค้นหาตำแหน่งเฉพาะ (media.currentPosition) จากนั้นกดปุ่มบันทึกภาพจะถูกส่งออกนี่คือคำสั่ง ffmpeg ของฉันที่ฉันใช้เพื่อให้บรรลุสิ่งนี้:
"-i",Video.mp4,"-filter_complex","[1:v][0:v]scale2ref=iw:ih[ovr][base];[ovr]colorchannelmixer=aa=0.7[ovrl];[base][ovrl]overlay[v]","-map","[v]","-ss",GetPositionInVideo,"-vframes","1","-q:v","2", "-preset", "ultrafast",directoryToStore+"/"+"Image.jpg"};
มันเป็นแอพพลิเคชั่นสำหรับ Android เพื่อให้เป็นไปในรูปแบบของสตริง คำสั่งทำงานได้อย่างสมบูรณ์แบบ
ในบันทึกของฉันมันจะแสดงสิ่งนี้ซ้ำ ๆ :
[Progress]: frame= 0 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed= 0x
จนกว่าจะถึงเฟรมจากนั้นจะแสดงสิ่งนี้:
[Progress]: frame= 1 fps=0.0 q=2.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=0.00151x
มันจะเสร็จสิ้นทันที
ดังนั้นสิ่งที่ฉันคิดว่าเกิดขึ้นคือ ffmpeg ประมวลผลแต่ละเฟรมจนกว่าจะถึงเฟรมที่ต้องการแล้วประมวลผล
คำถามของฉัน:
มีวิธีเพิ่มความเร็ว / เวลาในการประมวลผลของการส่งออกเฟรมเดียวจากวิดีโอไปยังรูปภาพหรือไม่? - บางทีด้วยการข้ามเฟรมที่ไม่ต้องการและไปที่เฟรมที่ผู้ใช้ต้องการส่งออกโดยตรง
-ss
มาก่อน-i
หรือไม่ และสถานที่ที่ควร-to
แล้วจะเป็นอย่างไร