Saya baru mengenal FFMPEG ... Tetapi penelitian yang saya lakukan menunjukkan bahwa itu mungkin saja terjadi.
Mengidentifikasi bingkai yang terjatuh:
! / bin / bash
rm framediffs.lis
ffmpeg -i MPEG0004.AVI f% d.png
framenum = 1 sementara [$ framenum -lt 50] lakukan file1 = f $ (($ framenum)). png file2 = f $ (($ framenum + 1)). png bandingkan - metrik RMSE $ file1 $ file2 NULL: 2> diff.lis fdiff = cat diff.lis |cut -d ' ' -f 1
echo $ file1 $ file2 $ fdiff >> framediffs.lis framenum = $ (($ framenum + 1)) selesai
cat framediffs.lis
Mensimulasikan beberapa frame yang dijatuhkan:
bandingkan -metric RMSE f45.png f47.png NULL: bandingkan -metric RMSE f45.png f48.png NULL: bandingkan -metric RMSE f46.png f48.png NULL: bandingkan -metric RMSE f47.png f50.png NULL:
maka jika perlu, potong sebagian file ...
Memotong segmant tanpa re-encoding:
ffmpeg -i source.mp4 -ss 00:00:05 -t 00:00:10 -c copy cut_video.mp4
Atau ganti segmen dari file yang tidak menunjukkan kerugian ...
Mengganti segmen dari file yang bagus:
ffmpeg -i in.mp4 -vf trim = X -c: salinan out.mp4 ffmpeg -i in.mp4 -vf trim = X, setpts = 'if (eq (N, 0), 0, PTS) '-c: salinan dari.mkv
Jika dicrepency audio, ekstrak audio dan kemudian remux file yang buruk ...
Mengekstrak audio dari file dan remuxing (saya pikir memilih segmen antara 2 keyframe harus dimungkinkan):
ffmpeg -i vid.mkv -map 0: 2 -ac 2 aud.wav avconv -i INPUT_FILE_WITH_BROKEN_SOUND.mp4 -i SECOND_INPUT_FILE.mkv -c copy -map 0: v: 0 -map 1: a: 1 OUTPUT.mp4
Seperti yang saya katakan, saya seorang pemula dan akan menghargai pikiran untuk menghindari pemborosan waktu. Terima kasih!