ฉันต้องการให้เว็บไซต์ของฉันอนุญาตให้ผู้ใช้สร้างคลิปของตนเองได้อย่างถูกต้องจากวิดีโอต้นฉบับที่ฉันให้ไว้
ฉันมีไฟล์วิดีโอต้นฉบับที่ฉันต้องการแปลงเป็นสิ่งที่เหมาะสมสำหรับเว็บไซต์:
Input #0, matroska,webm, from 'source.mkv':
Duration: 00:28:18.57, start: 0.000000, bitrate: 10183 kb/s
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 48 tbc (default)
Stream #0:1: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s (default)
ฉันใช้ ffmpeg เพื่อแปลงเช่น:
ffmpeg -i source.mkv -c:v libx264 -c:a aac -strict experimental -vf scale="960:-1" source.mp4
การดูวิดีโอนี้กลับมีคุณภาพและขนาดไฟล์เล็กพอสำหรับความต้องการของฉันและโหลด / เล่นบนเว็บไซต์ของฉัน
ฉันมีหน้าเว็บที่ให้ผู้ใช้เลือกจุดเริ่มต้นและจุดสิ้นสุดในวิดีโอนี้ - และสร้างคลิป นี่คือตัวอย่างของคำสั่ง ffmpeg ที่ฉันใช้:
-ss 577.920 -i source.mp4 -t 011.980 -codec:v copy -codec:a copy -vf scale="960:-1" clip1.mp4
ปัญหาคือคลิปไม่ถูกต้องตรงเวลาเสมอไป โดยปกติแล้วเสียงจะมีความแม่นยำเพียงพอ แต่วิดีโอจะหยุดก่อนครึ่งวินาทีหรืออะไรบางอย่าง
มีวิธีใดที่จะทำให้สิ่งนี้ถูกต้องและสอดคล้องกันเพื่อพูด 0.2 วินาที?
แก้ไข: การเพิ่ม-force_key_frames 00:00:00.2
ไม่ได้ช่วย
แก้ไข: ฉันเปลี่ยนรูปวาดเพื่อใช้-c:v libx264 -c:a aac -strict experimental
แทน-codec:v copy -codec:a copy
ผลลัพธ์ที่ดี (ish)
ไฟล์สามารถเล่นจากภายนอกโดยไม่มีปัญหา - แต่เมื่อฉันโหลดลงในองค์ประกอบวิดีโอ html5 ของฉันและเล่น - ส่วนสุดท้ายของวิดีโอ (เสียงดี) ค้าง ส่วนสุดท้ายที่ค้างจะน้อยกว่าหนึ่งวินาที
ฉันควรลองกับโปรแกรมเปลี่ยนไฟล์วิดีโอตัวอื่นหรือไม่? ทางเลือกที่ดีที่สุดสำหรับ libx264 คืออะไร? จำไว้ว่าฉันอาจต้องการให้เว็บไซต์นี้เป็นสาธารณะ
แต่การแฮงเอาท์ไม่สามารถเล่นได้อย่างถูกต้องโดยไม่มีปัญหากับเครื่องเล่นเช่น MPC หรือ Windows Media Player แนะนำว่าเป็นปัญหากับ Google Chrome หรือองค์ประกอบวิดีโอ HTML หรือไม่ หรือฉันกำลังใช้การเข้ารหัสที่ไม่สนับสนุนหรือบางอย่าง