通过ffmpeg恢复损坏的MTS文件

时间:2017-06-24 00:03:43

标签: video ffmpeg codec data-recovery

我有很多来自海外旅行的大型视频文件。其中90%都很棒,但有一些我记录在一张狡猾的SD卡上,由于某些原因无法播放。它们都是.MTS文件。

在VLC中,尝试播放时会出现错误:

java.lang.NoClassDefFoundError: org/apache/solr/handler/component/SearchComponent

我对视频文件或编解码器知之甚少,但我足够精明地使用ffmpeg,我认为这可能是我最好的选择。

我在其中一个文件上尝试了这个(称之为' input.MTS'):

Unidentified codec:
VLC could not identify the audio or video codec

结果如下:

ffmpeg -i input.MTS output.mp4

output.mp4文件现在可以在VLC中播放而不会出错,并且长度为5分38秒。但是,没有音频或视频。

此外,input.MTS约为18 MB,output.mp4约为0.313 MB。

恢复此视频的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

  

恢复此视频的正确方法是什么?

无法this file恢复任何内容,因为不包含任何音频/视频数据。

文件中的每个字节都有最大量FF作为十六进制值(或十进制255)。请参见下图(显示部分)文件的字节。

从这个输入我认为FFmpeg猜测你的文件必须是某种PCM(未压缩的音频)。缺少可识别格式的标题迫使它更进一步,并假设您的数据为某些ADPCM,因为该格式并不总是涉及标题数据。)

FFmpeg说:Stream #0:0: Audio: adpcm_dtk, 48000 Hz, stereo, s16p

VLC说:VLC could not identify the audio or video codec

如下所示,文件字节中没有任何内容可以确认实际格式(图像?视频?还是音频?)。数据可以是PCM音频,也可以只是全白图像(一个白色像素= FF FF FF)。

答案 1 :(得分:1)

我怀疑这有两个原因。一个是你认为使用的ffmpeg命令不够。尝试使用以下命令或查看here

ffmpeg -i input.mts -y -vcodec mpeg4 -acodec libfaac output.mp4

其次,我怀疑是VLC,因为它不那么稳定。您可以尝试在mplayer或ffplay或任何其他播放器中播放它。