Saturday, May 30, 2015

Pengertian -MAP di ffmpeg

Map digunakan untuk memetakan stream input ke output (digunakan oleh modul mux, demux).

Stream ID pada Multiple Input File

Format seperti ini dapat dilihat pada ffmpeg dalam penanganan input file.

ffmpeg -i original.avi -i original.avi
Input #0, avi, from ‘original.avi’:

Stream #0.0: Video: mpeg4, yuv420p, 672×272 [PAR 1:1 DAR 42:17], 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s

Input #1, avi, from ‘original.avi’:

Stream #1.0: Video: mpeg4, yuv420p, 672×272 [PAR 1:1 DAR 42:17], 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #1.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s
Jadi jika ada 2 file maka formatnya spt diatas:

0:0 stream ke 0 yaitu Video, pada file input pertama
0:1 stream ke 1 yaitu Audio, pada file input kedua

Dengan demikian

100:0 stream ke 0 yaitu Video, pada file input ke 101

MENGGANTI AUDIO

Misalkan kita punya 3 file:
bigbunny15s.mp4
tswitft15s.mp4
kalimba15s.mp3

Diinginkan membuat 2 file:
bigbunnytswift.mp4 (video bigbunny, audio tswitft)
twisftkalimba.mp4 (video tswitft, audio kalimba)

Commandnya sbb:
ffmpeg -i bigbunny15s.mp4 -i tswift15s.mp4 -i kalimba15s.mp3 -map 0:0:0:0 -map 1:1:0:1 -c:v copy -c:a copy bigbunnytswift.mp4 -map 1:0:1:0 -map 2:0:1:1 -c:v copy -c:a copy tswitftkalimba.mp4


Hasil: bigbunnytswift.mp4


Hasil: tswitftkalimba.mp4

Penjelasan format -map

-map a:b:x:y [petakan dari stream ke-b dari file input ke-a menjadi stream ke-y file output ke-x]

Urutan file dalam FFMPEG penting. File dan stream di mulai dengan index 0, artinya pertama file di map 0, file ke2 di map 1, stream pertama di map 0, stream kelima di map 4, dst

-map 0:0:0:0
ambil dari file input ke 0 (bigbunny15s.mp4) stream ke 0 yaitu stream video, masukkan video tsb ke file output ke 0 (bigbunnytswift.mp4) stream ke 0, yaitu stream video 

-map 2:0:1:1

ambil dari file input ke 2 (kalimba15s.mp3) stream ke 0 yaitu stream audio, masukkan audio tsb ke file output ke 1 (tswiftkalimba.mp4) stream ke 1, yaitu stream audio

Apabila file output hanya 1 file, maka cukup dengan:
-map a:b [petakan dari stream ke-b dari file input ke-a menjadi stream defaulf di file output]


Catatan:

Perintah:
ffmpeg -i bigbunny15s.mp4 -i tswift15s.mp4 -i kalimba15s.mp3 -map 0:0:0:0 -map 1:1:0:1 -c:v copy -c:a copy bigbunnytswift.mp4 -map 1:0:1:0 -map 2:0:1:1 -c:v copy -c:a copy tswitftkalimba.mp4

Setara dengan:

ffmpeg -i bigbunny15s.mp4 -i tswift15s.mp4 -map 0:0 -map 1:1 -c:v copy -c:a copy bigbunnytswift.mp4

ditambah

ffmpeg -i tswift15s.mp4 -i kalimba15s.mp3 -map 0:0 -map 1:0 -c:v copy -c:a copy tswitftkalimba.mp4

dan -c:v copy -c:a copy bisa disederhanakan menjadi -c copy


No comments: