แปลง Mp4 เป็น Mp3 พร้อมภาพขนาดย่อ


8

ฉันสามารถแปลง mp4 เป็น mp3 ใน ffmpeg ได้ แต่ฉันไม่แน่ใจว่าฉันจะเพิ่มภาพขนาดย่อของวิดีโอได้อย่างไร

ขณะนี้มีการแปลงจาก mp4 เป็น mp3

ffmpeg -i video.mp4 -acodec libmp3lame -metadata title=video -b:a 256 -f input.mp3

ฉันจะต้องเรียกใช้ผ่าน ffmpeg อีกครั้งด้วยคำสั่งนี้หรือไม่?

ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3

หรือมีวิธีการใช้ตัวกรองที่ซับซ้อนเพื่อบรรลุนี้เป็นหนึ่งทำงานได้อย่างไร

ฉันรู้ว่ามันใช้งานได้กับ FLV แต่ดูเหมือนจะไม่ทำงานสำหรับ mp4

ffmpeg -i video.flv -i cover.jpg -map 0:a -map 1 -c:v copy -metadata title=video -b:a 256k out.mp3

คุณต้องการให้ตัวแปลงตั้งรูปขนาดย่อโดยอัตโนมัติหรือไม่? เพราะมิฉะนั้นคุณสามารถเปลี่ยนได้ด้วยตนเอง แต่ฉันไม่แน่ใจว่าคุณจะเป็นอย่างไร หากคุณสามารถทำได้ด้วย FLV แต่ไม่ใช่กับ MP4 ฉันจะสร้างสคริปต์ที่รันทั้งสองคำสั่ง
RamonRobben

@RamonRobben ฉันพยายามหลีกเลี่ยงการเรียกใช้ ffmpeg สองครั้ง
nadermx

คุณสามารถลองบางอย่างเช่น ffmpeg -i in.mp4 -i test.png -map 0: 0 -map 1: 0 -c copy -id3v2_version 3 -metadata: s: v title = "ปกอัลบั้ม" -metadata: s: v comment = "Cover (Front)" out.mp3 ฉันกำลังดาวน์โหลด ffmpeg เพื่อเริ่มการทดสอบ
RamonRobben

คำตอบ:


3

คำตอบที่ดีกว่าพร้อมคำอธิบายการรวมคำแนะนำอัจฉริยะจาก slhck และ Mulvya ซึ่งเป็นการถอดพารามิเตอร์ที่ไม่จำเป็นออก

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -b:a 256k -c:v copy -map 0:a:0 -map 1:v:0 output.mp3

ffmpeg เครื่องมือการจัดทำเสียง / วิดีโอ: เลือกโดย OP แล้วมันเหมาะอย่างยิ่งสำหรับงานนี้

-i video.mp4 ไฟล์อินพุตแรก: วิดีโอที่มีไฟล์เสียงที่เราต้องการแยกออกมา

-i cover.jpg ไฟล์อินพุตที่สองรูปภาพที่เราต้องการแสดงเมื่อเราเล่นไฟล์เสียงที่ได้

-acodec libmp3lame เราต้องการสร้างไฟล์. mp3 โดยใช้ตัวเข้ารหัส LAME

-b:a 256kชุดนี้อัตราบิตสำหรับแทร็กเสียงเป็นค่าคงที่ 256Kb / s ตัวเลือกที่ชาญฉลาดจะเข้ารหัสด้วยบิตเรตตัวแปรระบุพารามิเตอร์คุณภาพ : -q:a 0ถามถึงคุณภาพสูงสุดในขณะที่-q:a 4มักแสดงถึงการประนีประนอมที่ดีระหว่างคุณภาพเสียงที่รับรู้และบิตเรต (และขนาดไฟล์)

-c:v copyนี่เป็นการระบุว่าสตรีมวิดีโอ (รูปภาพ. jpg) ไม่ได้ถูกเข้ารหัสใหม่ แต่ต้องคัดลอกเหมือนเดิม สิ่งนี้มีประโยชน์ในการหลีกเลี่ยงการประมวลผลที่ไม่จำเป็นและการสูญเสียคุณภาพที่อาจเกิดขึ้นเมื่อทำการเข้ารหัสเป็นรูปแบบการสูญเสีย ในกรณีของเราหากไม่มีพารามิเตอร์นี้ภาพจะถูกถอดรหัสจาก. jpg และเข้ารหัสเป็น. png ซึ่งเห็นได้ชัดว่าเป็นรูปแบบดั้งเดิมที่ได้รับเลือกโดยค่าเริ่มต้น สิ่งนี้จะไม่แสดงถึงการสูญเสียคุณภาพเนื่องจาก. png เป็น lossles แต่บ่อยครั้งกว่าจะไม่ทำให้ขนาดไฟล์เพิ่มขึ้นเนื่องจากข้อเท็จจริงที่ว่า. jpg (เป็นความสูญเสีย) มักจะมีอัตราการบีบอัดที่ดีกว่า

-map 0:a:0นี่เป็นการเลือกสตรีมที่จะใช้จาก0:อินพุตไฟล์แรก ( ): มันต้องเป็นสตรีม( :0) เสียงแรก ( ) ที่aมีอยู่

-map 1:v:0นี่เป็นการเลือกสตรีม:0วิดีโอ ( v) อันแรก ( ) จาก1:ไฟล์อินพุตที่สอง ( )

output.mp3 ชื่อของพารามิเตอร์นี้ถูกเลือกอย่างฉลาดแกมโกงเพื่อแนะนำไปแล้วว่านี่จะต้องเป็นชื่อที่จะมอบให้กับไฟล์เสียงออก (.mp3) ที่มีภาพรวมที่เราต้องการสร้าง

คำตอบเดิม

สิ่งนี้จะสร้างไฟล์เสียง (.mp3) ที่มีรูปแบบคงที่โดยใส่วิดีโอ (.mp4) และรูปภาพ (.jpg) จากงานแต่งงานของฉัน:

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -metadata title=video -b:a 256k -map_metadata 0 -map 0:1 -map 1 output.mp3

ดูเอกสารประกอบ ffmpeg เกี่ยวกับการเลือกสตรีมอินพุตด้วย-mapซึ่งเป็นตัวเลือกที่เกี่ยวข้องที่นี่

ฉันแรกรันคำสั่งด้วยเพียง-map 0 -map 1และได้รับข้อมูลนี้:

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> png (native))
  Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
  Stream #1:0 -> #0:2 (mjpeg (native) -> png (native))

ดังนั้นฉันรู้ว่าฉันต้องการสตรีม1(aac audio) จากไฟล์ที่มีหมายเลขดัชนี0เช่นไฟล์วิดีโอ -map 0:1 -map 1ดังนั้นจึงจะต้องมีการเลือกไว้อย่างชัดเจนด้วย


ฉันเคยลองมาแล้ว แต่มันทำให้ฉัน Stream map '0:1' matches no streams. To ignore this, add a trailing '?' to the map.
nadermx

เรียกใช้ด้วย ´-map 0 -map 1´และดูสตรีมที่มีอยู่
simlev

Stream mapping: Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame)) Stream #1:0 -> #0:1 (mjpeg (native) -> png (native))
nadermx

1
@nadermx คุณสามารถ-map 0:a:0 -map 1:v:0เลือกสตรีมเสียงและวิดีโอแรกของไฟล์แรกและไฟล์ที่สองตามลำดับ
slhck

1
หลีกเลี่ยงการเข้ารหัสอินพุตภาพโดยเฉพาะกับ JPG -c:v copy.
Gyan

2

คุณสามารถใช้ประโยชน์จากเครื่องเล่นสื่อ vlc -

ขั้นตอนที่ 1: เปิด VLC และเลือก“ สื่อ” คลิกที่แปลง / บันทึก

ขั้นตอนที่ 2: ในหน้าต่างถัดไปที่ปรากฏขึ้นให้เลือก“ เพิ่ม” และเลือกไฟล์วิดีโอ (MP4) ที่จะทำการแปลง

ขั้นตอนที่ 3: ถัดไปคลิกลูกศรลงที่ "แปลง / บันทึก" จากนั้นคลิก "แปลง"

ขั้นตอนที่ 4: ในหน้าต่างถัดไปที่ปรากฏขึ้นให้ตรวจสอบว่าได้เลือกปุ่ม“ แปลง” ดำเนินการต่อเพื่อเลือกประเภทของไฟล์เสียงที่คุณต้องการสร้าง ในกรณีที่ไฟล์ MP3 เป็นไฟล์ที่เรากำลังแปลง

ขั้นตอนที่ 5: เลือกปลายทางผลลัพธ์จากนั้นกด“ เริ่ม” VLC จะเริ่มทำการแปลง

สำหรับการเพิ่มภาพขนาดย่อคุณสามารถดูลิงค์นี้(อธิบายได้ดีมาก)

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