如何使用 udf 文件系统恢复 camcoder DVD 中的 VOB 视频文件,该文件系统显示为空,但实际上并非如此

如何使用 udf 文件系统恢复 camcoder DVD 中的 VOB 视频文件,该文件系统显示为空,但实际上并非如此

我最近发现了一些旧的双面迷你 dvd-rw 磁盘 (2.8GB),用于使用索尼 DCR-DVD201E 手持摄像机录制视频。双方都已经有内容,但尚未最终确定,因此我无法将它们安装到我的 Ubuntu 22.04 盒子上。

我继续通过相机最终确定它们。一侧工作正常。但另一个却没有:磁盘现在显示几乎已满数据(1.4GB 中的 ~1.3GB),但文件系统似乎出现问题,我的计算机和计算机上的文件或文件夹都完全为空。相机。

请注意,磁盘确实不是包含任何坏块并且不会导致任何读取错误。所以我们不是在谈论介质故障或与硬件相关的问题。

从同一台相机创建和完成的其他磁盘(包括该磁盘的另一面)来看,文件系统应该包含如下内容:

VIDEO_TS/
VIDEO_TS/
VIDEO_TS/VIDEO_TS.BUP
VIDEO_TS/VIDEO_TS.IFO
VIDEO_TS/VIDEO_TS.VOB
VIDEO_TS/VTS_01_0.BUP
VIDEO_TS/VTS_01_0.IFO
VIDEO_TS/VTS_01_1.VOB
:
:

的输出dvd+rw-mediainfo如下:

$ dvd+rw-mediainfo /dev/sr0
INQUIRY:                [HL-DT-ST][DVDRAM GP57EB40 ][RF01]
GET [CURRENT] CONFIGURATION:
 Mounted Media:         13h, DVD-RW Restricted Overwrite
 Media ID:              TDK502sakuM3
 Current Write Speed:   2.0x1385=2770KB/s
 Write Speed #0:        2.0x1385=2770KB/s
 Speed Descriptor#0:    00/716191 [email protected]=8310KB/s [email protected]=2770KB/s
READ DVD STRUCTURE[#10h]:
 Media Book Type:       00h, DVD-ROM book [revision 0]
 Legacy lead-out at:    716800*2KB=1468006400
READ DVD STRUCTURE[#0h]:
 Media Book Type:       32h, DVD-RW book [revision 2]
 Last border-out at:    2045*2KB=4188160
READ DISC INFORMATION:
 Disc status:           complete
 Number of Sessions:    1
 State of Last Session: complete
 Number of Tracks:      1
READ FORMAT CAPACITIES:
 formatted:     690544*2048=1414234112
 00h(800):      716192*2048=1466761216
 10h(10):       716192*2048=1466761216
 13h(10):       25648*2048=52527104
 15h(10):       716192*2048=1466761216
READ TRACK INFORMATION[#1]:
 Track State:           complete incremental
 Track Start Address:   0*2KB
 Free Blocks:           0*2KB
 Fixed Packet Size:     16*2KB
 Track Size:            690544*2KB
FABRICATED TOC:
 Track#1  :             14@0
 Track#AA :             14@690544
 Multi-session Info:    #1@0
READ CAPACITY:          690544*2048=1414234112

K3b 报告如下: K3b 关于 DVD 内容的报告

但是,如果安装磁盘,lsdu等会显示 0 个数据/文件/文件夹。

我使用以下方法撕下了内容dd

dd bs=2048 skip=0 count=690544 if=/dev/sr0 of=./out.iso

输出文件通过命令识别file为:

out.iso: UDF filesystem data (version 1.5) '2009_06_27_05H54M_PM'

然后我尝试了udfinfo

filename=out.iso
label=2009_06_27_05H54M_PM
uuid=00a8784b20202020
lvid=2009_06_27_05H54M_PM
vid=SONY_MOBILE
vsid=        SONY_MOBILE_VOLUME_SET
fsid=SONY_MOBILE_FILE_SET
fullvsid=00A8784B        SONY_MOBILE_VOLUME_SET
owner=
organization=
contact=
appid=
impid=*SONY_MOBILE
winserialnum=0x709b0f01
blocksize=2048
blocks=690544
usedblocks=690268
freeblocks=0
behindblocks=0
numfiles=0
numdirs=1
udfrev=1.02
udfwriterev=1.02
integrity=closed
accesstype=readonly
softwriteprotect=yes
hardwriteprotect=yes
start=16, blocks=5, type=VRS
start=32, blocks=16, type=MVDS
start=48, blocks=16, type=RVDS
start=64, blocks=1, type=LVID
start=256, blocks=1, type=ANCHOR
start=260, blocks=690268, type=PSPACE
start=690543, blocks=1, type=ANCHOR

我安装并尝试了它,photorec但它生成了多个小 mpeg 文件,其中许多文件无法播放,并且可能是未显示的较大 VOB 文件的一部分。

因为我知道光盘包含 VOB 文件,所以我尝试了ffmpeg以防万一它可以以某种方式跳过“垃圾”并将其转码为有用的内容,但是如果失败:

out.iso: Invalid data found when processing input

HandbrakeVIDEO_TS当我尝试使用该文件作为源时,也无法识别任何数据,尽管它确实可以与拥有我之前显示的文件夹的其他磁盘的目录结构正常工作。

然后我尝试使用打开out.iso文件VLC。这个确实有效,即它开始流式传输视频内容,但是存在一些问题:

  • 由于时间戳/索引已损坏,您无法在视频中导航
  • 将其转换为 mp4 会创建一个带有口吃、时间戳损坏等的视频。
  • 显然它不包含整个视频。最有可能的是相机将内容分解为多个 VOB 文件,因此在某些时候它会停止读取

我尝试重新编码使用 VLC 生成的 mp4 文件之一,即使长度比预期短,以便能够看到正确的长度(以秒为单位)并使用播放器进行导航,但ffmpeg在输出中产生了以下错误,而没有在最终输出文件中修复它们:

ffmpeg -fflags +igndts -i vlc-converted.mp4 -vcodec libx264 -acodec aac fixed.mp4
:
[aac @ 0x555e72b0a6c0] Queue input is backward in time
[mp4 @ 0x555e72afe980] Non-monotonous DTS in output stream 0:1; previous: 143927607, current: 143927095; changing to 143927608. This may result in incorrect timestamps in the output file.
[aac @ 0x555e72b0a6c0] Queue input is backward in time
[mp4 @ 0x555e72afe980] Non-monotonous DTS in output stream 0:1; previous: 143933751, current: 143933239; changing to 143933752. This may result in incorrect timestamps in the output file.
:

所以问题是:

  • 您是否知道有任何(Linux)工具可以发现 UDF 文件系统中的文件,该文件包含数据但显然没有适当的文件系统条目?
  • 如果不存在 UDF 工具,您是否知道有任何工具可以专门从原始文件系统识别 VOB 文件并“恢复”它们ddrescue
  • 如果以上都不可行,您是否知道任何ffmpeg技巧或替代工具至少可以修复 VLC 设法转换的视频流部分的时间戳索引?

答案1

我也有类似的情况。我从索尼旧摄像机的未定稿迷你 DVD 中复制了 .VOB 文件。我使用dd以下命令做到了这一点指示

可以使用 来完成相同的过程(在我看来这是一个更简单的选择)ddrescue

因此,我还有 .VOB,它只能使用 VLC 编写,没有时间戳和任何其他元数据。

ffmpeg 无法将 .VOB 转换为 .MP4 格式或任何其他抱怨输入数据错误的内容。

后来我发现 VLC 本身可以使用编解码器 H264 和 H265 将 .VOB 转换为 .MP4,并且它开始工作并且可以在其他媒体播放器上播放。

我并不是视频/音频转换和编解码器/格式方面的专家,但它解决了我的问题。

相关内容