การส่งเสียงผ่านวิดีโอโดยใช้ Ffmpeg


0

ดังนั้นฉันได้ผ่านการทดสอบมากมายและฉันก็ยังดูเหมือนจะไม่สามารถรับเสียงเพื่อ mux ผ่านวิดีโอโดยใช้ ffmpeg และไม่สามารถคิดได้ว่าฉันกำลังทำอะไรผิดดังนั้นจะขอบคุณความช่วยเหลือจริง ๆ

ฉันมีวิดีโอนี้ ดาวน์โหลดวิดีโอ

และถ้าฉันรัน ffmpeg -i มันให้สิ่งนี้กับฉัน

 Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 366x662 [SAR 1:1 DAR 183:331], 755 kb/s, 24 fps, 24 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 105 kb/s (default)

สตรีม 0: 0

และฉันมีชิ้นส่วนของเสียงนี้ ดาวน์โหลดเสียง

และเมื่อฉันใช้ ffmpeg ฉันได้รับสิ่งนี้

Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 277 kb/s
Stream #0:1: Video: png, rgb24, 400x400, 90k tbr, 90k tbn, 90k tbc

ดังนั้นสิ่งที่ฉันทำคือคัดลอกเสียงของฉัน 0: 0 เพื่อแทนที่เสียงวิดีโอ 0: 1 โดยไม่ต้องเข้ารหัสไฟล์ทั้งหมด

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:1 -map 0:0 -shortest out3.mp4 

กรุณารวมเอาท์พุทบรรทัดคำสั่งเต็มรูปแบบ uncut จาก ffmpeg เสมอ
slhck

คำตอบ:


3

ตัวเลขแรกใน -map ตัวเลือกเป็นดัชนีไฟล์อินพุต ดังนั้นหากคุณกำลังใช้ 0 สองครั้งคุณใช้เท่านั้น testing.mp4.

ลองใช้สิ่งนี้แทน:

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out3.mp4 

ที่นี่ 0:v:0 เลือกวิดีโอสตรีมแรกของไฟล์อินพุตแรกและ 1:a:0 เลือกสตรีมเสียงแรกของไฟล์อินพุตที่สอง โดยหลักการแล้ว :0 ไม่จำเป็นสำหรับไฟล์ของคุณ แต่ไม่เจ็บที่จะมีในกรณีที่มีแทร็กวิดีโอ / เสียงหลายแทร็ก

ดู รายการ FFmpeg wiki บน -map ตัวเลือก มากขึ้น


นอกจากนี้สำหรับผู้อื่น muxing mp3 ที่มี mp4 จะไม่เล่นใน Quicktime แต่จะเล่นใน vlc player หากคุณ mux m4a ด้วย mp4 มันจะเล่นได้อย่างถูกต้องในผู้เล่นทั้งสองคน
user1503606
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.