如何判断文件类型一个文件是否为MP4文件

如何判断一个文件是否为MP4文件_百度知道
如何判断一个文件是否为MP4文件
我有更好的答案
看文件名的后缀,显示MP4的就是MP4文件。如果不显示后缀,可以右键文件,选择属性,在常规里就能看到文件后缀名。或者在工具——文件夹 选项里调到 查看,不要勾选“隐藏已知文件类型的扩展名”,然后确认即可显示。
采纳率:94%
来自团队:
看他的后缀名就好了
右键—属性—文件类型
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。12:48 提问
求解读JAVA代码,为什么MP4文件不能播放?
下载的一个压缩包(压缩包内含mp4文件、字幕文件等),压缩包有密码,android程序用密码打开压缩文件,并执行一系列操作后,程序自动播放压缩包内的MP4文件,但MP4文件不能直接使用播放器播放,求解答如何能让mp4文件用播放器播放 。。。谢谢 。。。这里是完整代码下载链接:,(用JD-GUI直接查看Jar内的代码、-DF705DD4是去掉了扩展名的压缩文件)
下面是部分代码(代码位于jar文件内的nc.class):
import android.widget.T
import com.is.piano.base.ISA
import com.ispiano.crc64.A
import java.io.F
import java.io.PrintS
import java.util.L
import net.lingala.zip4j.core.ZipF
import net.lingala.zip4j.exception.ZipE
import net.lingala.zip4j.model.FileH
import net.lingala.zip4j.model.ZipP
public class nc
public static boolean a(String paramString1, String paramString2)
long l1 = System.currentTimeMillis();
ZipFile localZipF
File localF
localZipFile = new ZipFile(paramString1);
localZipFile.setFileNameCharset("GBK");
if (localZipFile.isValidZipFile())
break label101;
mh.b(paramString1);
throw new ZipException("\u538B\u7F29\u\u4E0D\u,\u53EF\u80FD\u88AB\u635F\u574F.");
catch (ZipException localZipException)
localZipException.printStackTrace();
localFile = new File(paramString2);
if (!localFile.exists())
break label99;
File[] arrayOfF
if (localFile.isDirectory())
arrayOfFile = localFile.listFiles();
i = arrayOfFile.
for (int j = 0; ; j++)
if (j &= i)
label101: if (localZipFile.isEncrypted())
localZipFile.setPassword("ISPiano Zhang");
List localList = localZipFile.getFileHeaders();
long l2 = 0L;
for (int k = 0; ; k++)
if (k &= localList.size())
if (l2 &= mh.b())
l2 += ((FileHeader)localList.get(k)).getUncompressedSize();
localZipFile.extractAll(paramString2);
mh.b(paramString1);
System.out.println("\u89E3\u538B\u\uFF1A" + (System.currentTimeMillis() - l1));
arrayOfFile[j].delete();
public static boolean a(String paramString1, String paramString2, String paramString3)
System.out.println("unzipUnfinishFile," + paramString1);
while (true)
String str1 = mh.c() + "/ispiano/package_cache/" + paramString1;
ZipFile localZipFile = new ZipFile(str1);
if (!localZipFile.isValidZipFile())
localZipFile.setPassword("ISPiano Zhang");
List localList = localZipFile.getFileHeaders();
Algorithm localAlgorithm = new Algorithm();
if (i & localList.size())
eg localeg = new eg();
localeg.a(Long.parseLong(paramString3.substring(0, 8) + "00"), paramString2);
localeg.g();
mh.b(str1);
new File(mh.c() + "/ispiano/package_cache/" + "dir_" + paramString1).delete();
FileHeader localFileHeader = (FileHeader)localList.get(i);
String str2 = localFileHeader.getFileName();
long l = localFileHeader.getUncompressedSize();
String str3 = localAlgorithm.getFileName(paramString2 + paramString3 + str2);
File localFile = new File(mh.c() + "/ispiano/video_cache/" + str3);
mi.c("jing", str3 + "," + str2 + "
" + localFile.length() + "," + l);
if ((!localFile.exists()) || (localFile.length() != l))
mh.b(mh.c() + "/ispiano/video_cache/" + str3);
if (mh.b() &= l)
Toast.makeText(ISApp.a(), , 0).show();
mh.a(mh.c() + "/ispiano/package_cache/" + "dir_" + paramString1);
mh.a(mh.c() + "/ispiano/video_cache/");
localZipFile.extractFile(str2, mh.c() + "/ispiano/package_cache/" + "dir_" + paramString1);
new File(mh.c() + "/ispiano/package_cache/" + "dir_" + paramString1 + "/" + str2).renameTo(new File(mh.c() + "/ispiano/video_cache/" + str3));
catch (ZipException localZipException)
localZipException.printStackTrace();
public static boolean b(String paramString1, String paramString2)
ZipFile localZipFile = new ZipFile(paramString2);
ZipParameters localZipParameters = new ZipParameters();
localZipParameters.setCompressionMethod(8);
localZipParameters.setCompressionLevel(5);
localZipFile.addFolder(paramString1, localZipParameters);
catch (ZipException localZipException)
localZipException.printStackTrace();
public static boolean c(String paramString1, String paramString2)
new ZipFile(paramString1).extractAll(paramString2);
catch (ZipException localZipException)
localZipException.printStackTrace();
按赞数排序
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* 创建VideoView对象 /
final VideoView videoView = (VideoView) findViewById(R.id.VideoView01);
/ 设置路径 /
videoView.setVideoPath("/sdcard/test.mp4");
/ 设置模式-播放进度条 */
videoView.setMediaController(new MediaController(Activity01.this));
videoView.requestFocus();
videoView.start();
你都没有加载Android内置的视频播放器,系统也不会从你的压缩文件里面加载,这是逻辑问题
你学习一下怎么播放mp4然后迁到这个功能就好了
需要下载DVE转换软件,视频文件,必须转换时可以使用!你是MP4转换DVD格式就行,再转换DVI,再转换MP4,这样,才行,
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐为什么下载mp4格式的文件显示的只是一个文件_百度知道
为什么下载mp4格式的文件显示的只是一个文件
我有更好的答案
下载的mp4格式的视频,它就是一个文件。所谓“文件”,就是在我们的电脑中,以实现某种功能、或某个软件的部分功能为目的而定义的一个单位。计算机文件有很多种,运行的方式也各有不同。一般来说我们可以通过文件名来识别这个文件是哪种类型,特定的文件都会有特定的图标,也只有安装了相应的软件,才能正确显示这个文件的图标。计算机文件是以计算机硬盘为载体存储在计算机上的信息集合。文件可以是文本文档、图片、音频、视频、程序等等。文件通常具有三个字母的文件扩展名,用于指示文件类型,例如,txt的文本文件;exe的可执行文件;jpg格式的图片文件;mp4的视频文件;mp3格式的音频文件等等。计算机文件按性质和用途分类,可以分为:系统文件。用户文件。库文件。 按文件的逻辑结构分为:流式文件。记录式文件。 按信息的保存期限分类:临时文件。永久性文件。档案文件。 按文件的物理结构分类:顺序文件。链接文件。索引文件。HASH文件。索引顺序文件。 按文件的存取方式:顺序存取文件。随机存取文件。 UNIX系统中文件分类:普通文件。目录文件。特殊文件。在管理信息系统中,文件的分类:①按文件的用途分类:主文件、处理文件、工作文件、周转文件(存放、其他文件。②按文件的组织方式分类:顺序文件、索引文件、直接存取文件。
采纳率:70%
可能是你电脑或者手机上没有相应的软件,你可以试试下载一个播放器看看
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。扫一扫体验手机阅读
怎么判断mp4文件的第一个关键帧在什么位置
<span type="1" blog_id="1663658" userid='
分享到朋友圈
关注作者,不错过每一篇精彩请问如何精确地定位 MP4 文件的精确到毫秒的 time stamp?因为某些原因把几个视频合并成了一个,现在在播放器里面需要根据时间轴去定位。视频文件是 25fps,我按照帧数换算出来好像不对。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
请问如何精确地定位 MP4 文件的精确到毫秒的 time stamp?因为某些原因把几个视频合并成了一个,现在在播放器里面需要根据时间轴去定位。视频文件是 25fps,我按照帧数换算出来好像不对。
14:22:53 +08:00 · 3110 次点击
20 回复 &| &直到
08:00:00 +08:00
& & 16:48:31 +08:00
导出timecode v2是比较方便的。25fps如果是mediainfo看的话不一定准的,vfr也说不定。
& & & 17:09:37 +08:00
你确定是 25 fps ?不是 24.97 fps?
& & 17:17:15 +08:00
@ 哪有这么奇怪的fps
& & & 17:27:52 +08:00
@ PAL 制式刷新率一半。
& & 13:24:31 +08:00
@ 不好意思,还是没大听懂……
& & 14:12:56 +08:00
@ 导出timecode v2。
我所知道的几种方法。
- dtsedit工具
- FFVideoSource()可以导出tc
- l-smash里的box dumper可以导出DTS+CTS的timecode,你需要自己parse
- 转成mkv以后用mkvextract timecode_v2
@ 就算是PAL也应该是25p或者50i吧
& & 14:44:50 +08:00
25 fps 只是为了交流时说话能简单一点。
真实帧数应该是 24.97 fps 才对吧……
& & 14:51:17 +08:00
@ 我网上搜了一下,用 mp4fpsmod_0.24 输出了 timecode v2,但是格式就是 40ms 的步进,更迷惑了。
& & 15:45:44 +08:00
@ 那就没什么问题啊,1s/25 = 40ms没错。
@ NTSC制式常见有24p/1.001与30p/1.001两种,PAL我只知道25p,如果你手头有正式出版物是25p/1.001=24.97fps的话欢迎指出。
& & 16:21:10 +08:00
@ 是的。我们是把这个视频用在 IOS 程序中,播放的时候按照 40ms 的换算出来的 timecode 定位却是错的,有的会多几帧有的会少几帧。
& & 04:52:45 +08:00
@ 我只能猜测跳转的时候是跳转到关键帧而不是当前帧。
解码某一特定帧时必须要从关键帧开始解码。
& & 09:03:36 +08:00
@ 谢谢谢谢!
如果这样的话,那我该怎样处理这个视频呢?插入空白帧来把每个动作的开始帧都定到关键帧?
& & 16:27:13 +08:00
@ 能把场景描述得更具体点么?暂时还不太明白为什么播放器需要毫秒级帧定位……
& & 17:53:53 +08:00
@ 方便的话加我一下 Q 吧?求大侠指点。我的是
& & 19:08:31 +08:00
@ 平时懒得上Q了,百来个群闪着太容易分心了……
能详细说的话还是在这说吧,比较方便
& & 19:32:19 +08:00
@ 我们是《美女德州扑克》开发商,游戏中的荷官有一套动作,每个动作1-3秒之间吧,在游戏中是随机触发的。为了数据安全考虑,我们将这些动作的视频合并成了一个文件然后进行了加密。
& & 05:37:39 +08:00
@ 你们合并是用的什么软件?
如果要考虑定位准确性的话,可以在编码时把每个片段的第一帧指定为关键帧 (x264可以用qpfile)
& & 13:16:47 +08:00
@ 之前是用 AE 把每个片段都处理好,然后用 iFFmpeg 合并。
& & 05:30:55 +08:00
@ 不知道我以下说的方法对你是不是太难,但是你可以试试。当然前提是你们是用的h.264。
首先AE导出所有片段连在一起的无损AVI
用virtualdub打开avi,找到每一段视频的开始位置的帧号
按照以下的格式写入一个名为qpfile.txt的文件里
150 I -1
250 I -1
300 I -1
.... I -1
其中第一列是帧号,后面的内容原样照抄。
然后调用x264压缩,压缩的时候记得加上这个参数 --qpfile qpfile.txt
比如 x264_tMod_8bit.exe --demuxer lavf --force-cfr --crf 18 --preset slow --tune animation --qpfile qpfile.txt -o output.mp4 input.avi 这样。
如果你们用的是ASP的话……不确定XviD有没有类似的功能了。而且真要用XviD的话不如直接上AVI容器来得简单粗暴
& & 22:19:31 +08:00
@ 多谢指点。
& · & 1925 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.1 · 17ms · UTC 14:38 · PVG 22:38 · LAX 07:38 · JFK 10:38? Do have faith in what you're doing.}

我要回帖

更多关于 如何判断文件是否存在 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信