我用以下方式录制了一段录音
ffmpeg -f alsa -ac 2 -i plughw:0,0 /tmp/audio.mp4
然后我移动/tmp/audio.mp4
到另一个目录 ( /root/audio.mp4
),而没有停止ffmpeg
导致.mp4
文件损坏:
ffplay /root/audio.mp4
[...]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f3524000b80] moov atom not found
audio.mp4: Invalid data found when processing input
如何恢复和读取我的.mp4
文件?
答案1
您可以尝试并使用未截断修复该文件。
恢复损坏(截断)的 mp4、m4v、mov、3gp 视频。前提是您有类似且未损坏的视频。
您可能需要从源代码编译它,但还有另一种选择是使用 Docker 容器并将文件夹与文件绑定到容器中并以这种方式修复它。
您可以使用包含的 Dockerfile 将包构建为容器并执行
git clone https://github.com/ponchio/untrunc.git
cd untrunc
docker build -t untrunc .
docker run -v ~/Desktop/:/files untrunc /files/filea /files/fileb
答案2
这里提供的解决方案(https://github.com/ponchio/untrunc)解决了我的问题!我将它作为 Docker 容器运行。这是我的步骤:
安装 Docker(如果您还没有)
克隆存储库:
git clone https://github.com/ponchio/untrunc
在 Dockerfile 的同一目录中,运行:
cd untrunc docker build -t untrunc .
这将构建一个本地 docker 镜像 - 这需要时间。
现在您必须提供来自同一来源(在我的情况下是同一相机)的示例文件以及您想要修复的损坏文件。例如:
docker run -v /path/to/files/:/files untrunc /files/working_video /files/broken_video