Pertanyaan ini sudah ada jawabannya di sini:
Saya punya file
Lainnya - Analogue Clock-JEJqy1Wlovw.mp4 yang hanya merupakan unduhan dari https://www.youtube.com/watch?v=JEJqy1Wlovw
Panjangnya 2 menit 13 detik.
Saya memiliki beberapa masalah untuk memotongnya menjadi yang kedua.
Saya bisa menggunakan perintah ini
ffmpeg -ss 0 -i infile.mp4 -c copy -t 60 output.mp4
untuk membuat file yang 60 detik, jadi tidak ada masalah sejauh ini.
Itu file tepat 1 menit, tidak ada masalah sejauh ini.
C:\vids\a>dir
blahhclo.mp4 9,590,540 bytes
C:\vids\a>
C:\vids\a>mediainfo blahhclo.mp4
General
Complete name : blahhclo.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 9.15 MiB
Duration : 1mn 0s
Overall bit rate : 1 278 Kbps
Writing application : Lavf58.3.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.0
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1mn 0s
Bit rate : 1 146 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.022
Stream size : 8.21 MiB (90%)
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 1mn 0s
Bit rate mode : Constant
Bit rate : 126 Kbps
Channel count : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Compression mode : Lossy
Delay relative to video : 40ms
Stream size : 920 KiB (10%)
C:\vids\a>
Tapi saya punya masalah ketika saya mencoba untuk memotongnya di waktu berikut, dan apakah saya mencoba untuk memotong 1 menit satu atau seluruh 2 menit 13 detik satu.
Jika saya memotong dengan -ss 0 -t 1, itu menghasilkan file yang 1s 22ms.
Jadi itu tidak terlalu buruk yang cukup dekat dengan satu detik. 1,022 detik cukup baik untuk upaya memotong satu detik.
Jika saya memotong dengan -ss 0 -t 2, itu menghasilkan file 3s 19ms Itu mengerikan! itu artinya satu detik!
Jika saya memotong dengan -ss 0 -t 30 maka tidak masalah 30s 1ms.
Atau video ini misalnya, juga sebuah mp4 https://www.youtube.com/watch?v=pJ3-xf26wDE
C:\blah>ffmpeg -ss 189 -i vid.mp4 -c copy -t 6 someoutput.mp4
C:\blah>mediainfo someoutput.mp4
menghasilkan durasi 8s 383ms
Itu sangat salah, karena itu seharusnya 6 detik! Jadi itu dua detik terlalu lama!
C:\blah>ffmpeg -ss 191 -i vid.mp4 -c copy -t 6 someoutput2.mp4
C:\blah>mediainfo output2.mp4
menunjukkan bahwa ffmpeg menghasilkan durasi 10s 403ms
yang salah besar karena perintah ffmpeg ditentukan 6 detik!
Jadi itu bukan hanya satu detik, yaitu 4 detik!
Itu hampir 50% lebih lama dari yang seharusnya!
copy
untuk itu.