VLC 및 다른 플레이어가 충돌하지 않도록 ffmpeg로 잘못된 파일 및 스트림 수정


17

손상된 비디오 파일로 끝날 수있는 여러 번 일어났습니다.

  • 공식 출처에서 다운로드했지만 토런트가있는 비디오 및 어떤 이유로 든 모든 부분이 .mkv, .ts 또는 .mp4에있는 것은 아닙니다.
  • 특정 시점에서 데이터가 누락 된 .ts 형식의 레코드
  • 손상된 섹터를 가진 오래된 하드 드라이브에서 비디오를 복사

이 비디오를 VLC 또는 다른 플레이어와 함께 재생하면 특정 지점까지 재생 된 다음 즉시 종료됩니다. 때때로 나는 나쁜 부분을 건너 뛰려고 노력할 수 있지만 다른 나쁜 부분을 만나고 다시 멈출 수 있습니다.

질문은 :

ffmpeg 및 아마도 -c 복사 방식 으로이 문제 (스트림 및 키 프레임과 관련이 있다고 가정)를 해결할 수 있습니까? 그래서 모든 것을 다시 압축하지 않아도됩니까?

내가 달성하고자하는 것은 누락 된 부분을 건너 뛰는 전체 길이의 비디오입니다. 비디오가 충돌하는 대신 글리치를 선호합니다.


답변:


26

파일의 일부가 물리적으로 불량 섹터에 있거나 어떤 이유로 OS가 전체 파일을 FFmpeg에 제공 할 수없는 경우 당연히 FFmpeg는 이에 대해 아무 것도 할 수 없습니다. 해당 부분을 무시하고 복구 가능한 부분을 ddrescue 와 같은 새 파일에 쓸 수있는 유틸리티를 가져와야 합니다.

이제 파일 프로토콜이 오류의 원인이 아닌 경우 시도해 볼 수 있습니다

ffmpeg -err_detect ignore_err -i video.mkv -c copy video_fixed.mkv

1
이 작동하지만가 없으면 실패합니다 -c copy. 레코딩 중에는 작동하지 않습니다.
intuited

그럼에도 불구하고, 나는 여전히 얻고 Invalid data found when processing input있으며 ffmpeg는 포기합니다.
Mikhail T.

좋은 해결책 ... MP4 파일의 moov atom이 여전히 어딘가에 있다면. 거기에도 없으면 어떻게합니까?
기네스 Llewelyn

그것은 놀랍게도 선한
일로

5

더 나은 답변을 찾기 위해 가능한 방법은 다음과 같습니다.

ffmpeg -i video.mkv -c copy video_fixed.mkv

그러나 결과가 더 나아질 수있는 몇 가지 추가 옵션이 있다고 확신합니다.


1
메타 데이터, 타임 스탬프 또는 컨테이너 정보에 문제가있을 때마다 작동합니다. 그리고 그것은 매우 빠르며 보통 400x 재생 속도보다 빠릅니다.
user24601 2016 년

이 명령으로 솔직히 엉덩이를 구했습니다.
neverMind9
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.