Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 如何从我的家庭电影文件中获取原始的捕获时间戳::AVI和MPG4?_Video_Codec_File Rename - Fatal编程技术网

Video 如何从我的家庭电影文件中获取原始的捕获时间戳::AVI和MPG4?

Video 如何从我的家庭电影文件中获取原始的捕获时间戳::AVI和MPG4?,video,codec,file-rename,Video,Codec,File Rename,我有超过TB的家庭电影,文件名很糟糕。找到你想要的是不可能的。 我想将所有文件重命名为它们最初录制的时间(而不是它们放在我的计算机上的文件时间)。 一些应用程序(如Ulead Video Studio)可以访问这些信息,我相信这些信息嵌入在编解码器中 我很想知道如何编写一个.Net应用程序来提取这些信息以重命名我的文件,这样我就可以轻松地组织它们,或者找到一个可以为我这样做的应用程序。 非常感谢您的光临 附加信息::家庭电影是用miniDV和DVD摄像机拍摄的。这是我不久前发现的一段代码,应该可

我有超过TB的家庭电影,文件名很糟糕。找到你想要的是不可能的。 我想将所有文件重命名为它们最初录制的时间(而不是它们放在我的计算机上的文件时间)。 一些应用程序(如Ulead Video Studio)可以访问这些信息,我相信这些信息嵌入在编解码器中

我很想知道如何编写一个.Net应用程序来提取这些信息以重命名我的文件,这样我就可以轻松地组织它们,或者找到一个可以为我这样做的应用程序。 非常感谢您的光临


附加信息::家庭电影是用miniDV和DVD摄像机拍摄的。

这是我不久前发现的一段代码,应该可以让您开始学习


除非原始捕获使用了绝对时间戳,否则很有可能你运气不佳。根据我的经验,大多数捕获应用程序在第一帧使用时间0,而不是通用时间。要检查这一点,获取并加载其中的文件,然后查看第一个输出管脚的属性中的开始时间

您可以查看使用来查看您正在查找的元数据是否存在于文件中。对于AVI文件,您还可以在其十六进制编辑器中查看的RIFF特性。除非您的捕获应用程序对您很好,否则这些数据可能从未被记录

假设原始时间戳以某种方式可用,我建议查看帮助您找到它的任何应用程序的源代码


对于我的视频,我开始在捕获时获取元数据,将其存储在XML文件中,并让我的转码/后处理应用程序将最后修改的时间戳固定为原始时间戳

这是一个基于mplayer的黑客操作系统,它至少适用于我的相机生成的MOV文件:

mplayer -vo null -ao null -frames 0 -identify myfile.MOV 2>/dev/null|grep creation_time:
我使用它批量重命名它们:

for m in MVI*.MOV; do
    t=$(mplayer -vo null -ao null -frames 0 -identify $m 2>/dev/null|grep creation_time:|sed 's/.*creation_time: *//;s/[-:]//g;s/ /-/')
    mv ${m} ${t}_${m}
done

我不能谈论DVD,但编解码器确实在每一帧上存储时间和日期(如相机中设置的)

对于Linux,像
dvgrab
这样的程序可以处理这些时间戳,对于Windows,我相信名为dvdate.exe的工具可以处理这些时间戳


DV视频可以存储在AVI容器(.AVI)、原始(.DV或.dif)和QuickTime(.mov)中。但并非所有AVI都是DV。60分钟的DV视频约为13GB如果您的文件较小,它们可能已经转换为其他编解码器,并且时间戳丢失。

您应该看看exiftool。它是一个非GUI实用程序,允许您访问许多媒体文件元数据中的此类信息


您可能可以提取exiftool输出,以制作一个漂亮的GUI,用您想要的任何语言重命名。我有自己的python脚本。

谢谢你的建议。不幸的是,我要查找的信息不在文件属性中,这些选项无法获取它。我试过:(我相信摄像机的时间/日期戳嵌入了文件中。不过谢谢!这太棒了,谢谢。作为一个小小的调整,你可以通过将
$m
更改为
“$m”
并将
mv
行更改为
mv“${m}”${t}{m}来处理文件名中的空格。)
。我知道如果文件直接从手机发送,您不会希望文件中有任何空格,但这是一个更好的通用解决方案。这一解决方案为我节省了大量整理视频的时间!它可以读取时间戳并根据新目录移动文件。
查找../Videos/-iname'*.avi'-exec exiftool'-目录