ทั้งนี้ขึ้นอยู่กับตัวแปลงสัญญาณที่ใช้ใน FLV ของคุณคุณอาจจะสามารถออกไปได้ด้วยการห่อใหม่ในคอนเทนเนอร์ mp4 คุณจะต้องการH.264
หรือMPEG4 simple profile
วิดีโอและAAC
เสียง คุณสามารถค้นหาข้อมูลบางอย่างในไฟล์ต้นฉบับของคุณด้วยffmpeg -i input.flv
ฉันไม่แน่ใจว่าเพียงแค่มี H.264 / MPEG4 Simple + AAC นั้นดีพอหรือว่ามีตัวเลือกเฉพาะสำหรับตัวแปลงสัญญาณที่รองรับ ง่ายพอที่จะทดสอบ:
ลองใช้ดู
ffmpeg -i input.flv -c copy -copyts output.mp4
-copyts
เป็นcopy timestamps
ก็จะช่วยให้การซิงค์เสียง
หากวิธีนี้ใช้ไม่ได้ให้ลองบังคับใช้ตัวแปลงสัญญาณเสียงและวิดีโอ นี่จะเข้ารหัสไฟล์อีกครั้ง:
ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 output.mp4
ในการปรับปรุงคุณภาพวิดีโอคุณสามารถใช้ค่า CRF ที่ต่ำกว่าเช่นอะไรก็ได้จนถึง 18 ในการรับไฟล์ที่เล็กลงให้ใช้ CRF ที่สูงขึ้น แต่โปรดทราบว่าสิ่งนี้จะทำให้คุณภาพลดลง
ในการปรับปรุงคุณภาพเสียงให้ใช้ค่าคุณภาพที่สูงขึ้น สำหรับ FAAC 100
เป็นค่าเริ่มต้น
ต่อไปนี้เป็นแนวคิดสองสามข้อสำหรับคำสั่ง ffmpeg ที่แนะนำในคำถาม
-ar
หมายถึงอัตราตัวอย่างเสียง ฉันจะแนะนำไม่ยุ่งกับสิ่งนี้จนกว่าคุณจะเข้าใจสิ่งที่ดีกว่า หากคุณต้องการเล่นด้วยการเข้ารหัสเสียงให้ปรับบิตเรต (เช่น-b:a 128k
) และให้ตัวเข้ารหัสเลือกสิ่งที่ต้องทำตามนั้น
หากคุณจบลงที่ถนนสายนี้ ...
คุณภาพซีดีคือการสุ่มตัวอย่าง 44100Hz; วิดีโอทั่วไปใช้ 48000Hz
คุณอาจทราบว่า 22050 ในตัวอย่างของคำถามเดิมคือ 1/2 อัตราตัวอย่างคุณภาพซีดี หากคุณกำลังปรับเปลี่ยนวัสดุซีดีนี่เป็นทางเลือกที่ดี หากคุณเริ่มต้นด้วยแหล่งที่มา 48KHz (ซึ่งคุณอาจเป็นอีกครั้งนี่เป็นเรื่องธรรมดามากกว่า 44100 ในไฟล์วิดีโอ) ฉันจะใช้ 24Khz แทน มันอาจจะไม่สำคัญมากนัก แต่มันอาจจะฟังดูดีขึ้นเล็กน้อยและใช้ CPU น้อยกว่านี้เล็กน้อยในการทำการแปลง