Split/Merge Video and Audio stream without re-encoding ด้วย ffmpeg

Jetsada Malaisirirat
2 min readJan 29, 2019

--

ffmpeg เป็นเครื่องมือ multimedia framework ที่เป็น Open Source มีความสามารถ decode, encode, transcode, mux, demux, stream, filter ไฟล์ Video/Audio หลากหลาย สามารถหา Download มาใช้งานได้ ไม่ว่าจะเป็น Linux, Windows หรือ Mac

ในบทความนี้จะโฟกัสที่การรวมไฟล์ Video และ Audio เป็นไฟล์เดียว และการแยก stream audio ออกจากไฟล์ Video โดยที่ไม่มีการเข้ารหัสใหม่ (Re-encoding) ให้เสียรายละเอียดไปนั่นเอง

ffmpeg option เบี้องต้น

  • -i input file
  • -c copy stream (not re-encoding)
  • -map map stream (0:v track0 video stream/ 1:a track1 audio stream)

— — — — — — — — — — — — — — — — — — — — -

Merge Video and Audio stream file to file

กรณีที่เราต้องการรวมไฟล์ เช่น ไฟล์ Hi-def 1080HD จาก Youtube นั้นจะดาวน์โหลดเป็นไฟล์ Video และ Audio แยกกันมา

เมื่อจะรวมไฟล์จะใช้คำสั่ง

ffmpeg -i <Video.mp4> -i <Audio.mp3> -c copy <mergefile.mp4>

ffmpeg -i <Video.mp4> -i <Audio.mp3> -c copy -map 0:v -map 1:a <mergefile.mp4>

Example

ffmpeg -i MV.mp4 -i Audio.mp3 -c copy -map 0:v -map 1:a izone_mv.mp4

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

กรณีจะ Split Stream เสียงออกมาจากไฟล์ Video

check file ว่ามี stream อะไรบ้าง

ffmpeg -i input.mkv # show stream numbers and formats

ดึง stream เสียง ออกมาเป็นไฟล์เสียง
ffmpeg -i input.mkv -c copy audio.m4a # AAC
ffmpeg -i input.mkv -c copy audio.mp3 # MP3
ffmpeg -i input.mkv -c copy audio.ac3 # AC3
ffmpeg -i input.mkv -an -c copy video.mkv
ffmpeg -i input.mkv -map 0:1 -c copy audio.m4a # stream 1

--

--

No responses yet