Selanjutnya kita akan memotong file jadi 5 detik dan convert dari mp4 ke ts, dan kita lihat apakah ada penambahan jumlah frame.
Lanjut...
tswift5s.ts : file tswift.mp4 yang di potong jd 5 detik dalam format TS.
c2xtswift4s.ts : file tswift.mp4 yang di potong jd 5 detik dan dipercepat 2x dalam format TS.
Langkah-langkah sbb:
1. Memotong jadi 5 detik (tswift5s.mp4)
ffmpeg -i tswift.mp4 -ss 00:00:00 -t 00:00:05 tswift5s.mp4
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (libvo_aacenc))
Terlihat terjadi transcoding karena codec di transcode ulang.
2. Convert jadi TS file (tswift5s.ts)
ffmpeg -i tswift5s.mp4 tswift5s.ts
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native))
Stream #0:1 -> #0:1 (aac (native) -> mp2 (native))
Terlihat juga terjadi transcoding, karena codec di transcode ulang.
3. Percepat video jadi 2x (c2xtswift.mp4)
ffmpeg -i tswift5s.mp4 -filter:v "setpts=0.5*PTS" c2xtswift5s.mp4
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (libvo_aacenc))
Terlihat terjadi transcoding, karena codec di transcode ulang.
4. Convert jadi TS file (c2xtswift.ts)
ffmpeg -i c2xtswift5s.mp4 c2xtswift5s.ts
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native))
Stream #0:1 -> #0:1 (aac (native) -> mp2 (native))
Terlihat terjadi transcoding, karena codec di transcode ulang.
tswift5s.ts : file tswift.mp4 yang di potong jd 5 detik dalam format TS.
c2xtswift4s.ts : file tswift.mp4 yang di potong jd 5 detik dan dipercepat 2x dalam format TS.
Langkah-langkah sbb:
1. Memotong jadi 5 detik (tswift5s.mp4)
ffmpeg -i tswift.mp4 -ss 00:00:00 -t 00:00:05 tswift5s.mp4
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (libvo_aacenc))
Terlihat terjadi transcoding karena codec di transcode ulang.
2. Convert jadi TS file (tswift5s.ts)
ffmpeg -i tswift5s.mp4 tswift5s.ts
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native))
Stream #0:1 -> #0:1 (aac (native) -> mp2 (native))
Terlihat juga terjadi transcoding, karena codec di transcode ulang.
3. Percepat video jadi 2x (c2xtswift.mp4)
ffmpeg -i tswift5s.mp4 -filter:v "setpts=0.5*PTS" c2xtswift5s.mp4
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (libvo_aacenc))
Terlihat terjadi transcoding, karena codec di transcode ulang.
4. Convert jadi TS file (c2xtswift.ts)
ffmpeg -i c2xtswift5s.mp4 c2xtswift5s.ts
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native))
Stream #0:1 -> #0:1 (aac (native) -> mp2 (native))
Terlihat terjadi transcoding, karena codec di transcode ulang.
Sekarang kita punya 4 file:
o tswift5s.mp4
o c2xtswift5s.mp4
o tswift5s.ts
o c2xtswift5s.ts
Mari kita lihat gambar PCR/DTS/PTS nya.
tswift5s.ts
Terlihat bahwa jumlah frame (lingkaran biru) jika di hitung adalah 121. Hal ini bisa di crosscheck dengan menggunakan ffmpeg atau ffprobe.
ffmpeg -i twsift5s.ts -c copy temp.ts
ffprobe -count_frames -select_streams v -show_frames -show_streams tswift5s.ts > tswift5s_frame_ts.txt
Kenapa tidak 120 frame? Bukankah tswift5s.mp4 ada 120 frame (24 fps x 5s = 120 frame)?
Sepertinya file .mp4 diconvert ke .ts akan bertambah 1 frame. Jadi jika file mp4 nya terdiri dari 120 frame maka file ts nya terdiri dari 121 frame.
Bagaimana jika mp4 nya dipercepat video nya jadi 2x. Ternyata jumlah frame di kurangi jadi separohnya.
c2xtswift5s.ts
Terlihat bahwa 2.5 detik awal ada frame video yang dimunculkan pada PTS nya. Jika di hitung jumlah lingkaran biru sekitar 60an frame. Berapa tepatnya?
Jika di hitung oleh ffmpeg, dan ffprobe didapat hasilnya:
ffmpeg -i c2xtswift5s.ts -c copy temp.ts
frame=64
Jika pakai ffprobe pada section [STREAM]
ffprobe -select_streams v -show_frames -count_packets -show_streams c2xtswift5s.ts > probe.txt
ffprobe -select_streams v -show_frames -count_packets -show_streams c2xtswift5s.ts > probe.txt
nb_read_frames=64
Sedangkan file mp4 nya terdiri dari 63 frame.
ffmpeg -i c2xtswift5s.mp4 -c copy temp.mp4
frame=63
Artinya konversi dari MP4 ke TS menambah 1 frame.
No comments:
Post a Comment