我想对以.mp4格式存储的视频进行一些图像分析.因此,我需要一种方法来用Java获取这部电影的图像.我骂了很多,发现了像jcodec和jaad这样的库.但我无法使用这些库运行.正如我发现的那样,有一些例子(至少我没有找到)显示我的用例.
你能帮助我吗?你知道任何库可以做我需要的,至少在Win7 64位上运行.或者你知道如何使用jcodec实现这一目标吗?
非常感谢+最好的问候,安迪
编辑:
正如我写的,我用jcodec尝试过.我发现了如何获取帧的数据,但不知道如何将它变成像BufferedImage这样的东西.我希望这些数据不是简单的RGB格式,而是任何压缩格式.(我是否正确?)我不知道要解码这些数据.
您可以使用jcodec获取帧的数据,如下所示(至少据我所知):
public static void main(String[] args) throws IOException, MP4DemuxerException {
String path = "videos/video-2011-09-21-20-07-21.mp4";
MP4Demuxer demuxer1 = new MP4Demuxer(new FileInput(new File(path)));
DemuxerTrack videoTrack = demuxer1.getVideoTrack();
Packet firstFrame = videoTrack.getFrames(1);
byte[] data = firstFrame.getData();
}
Run Code Online (Sandbox Code Playgroud)
我还找到了以下内容:http://code.google.com/p/jcodec/source/browse/trunk/src/test/java/org/jcodec/containers/mp4/DitherTest.java? r = 70 但这不是使用可下载的jar-package工作(有编译错误).
谢谢你的帮助!
我有两个不同的视频,两者(据我所知)通常以相同的方式捕获,我正在尝试使用Chrome中的HTML5视频标记.两个视频都在VLC中打开并完美播放,因此我认为文件损坏没有任何问题,两者都是带有H.264格式的mp4,使用YUV色彩空间.但是,当我尝试在Chrome(Version 21.0.1180.89)中播放一个时,它会给我一个灰色的播放按钮,而另一个则完美无缺.作为参考,我的操作系统是Ubuntu 10.10,虽然我在操作系统的新版本中看到了同样的问题.这是我是将视频加载到HTML5标记中,还是直接导航到存储视频的URL.我有点在这里损失,没有人知道我应该去找到显著差异是两个视频之间的什么什么方向发展?
这个工作:https://dl.dropbox.com/u/100841270/1_G101_20120914_0139PM_Course_101.mp4
这个不是:https://dl.dropbox.com/u/100841270/1_G101_20120914_1156AM_Course_101.mp4
它似乎与操作系统无关,因为我在Windows和Linux中都看到了同样的问题.Ubuntu中的Chrome 22 beta似乎也不起作用.
我正在使用Video.js在客户的网站上播放MP4格式的视频.播放器使用html5视频和Adobe Flash Player作为后备.(在我的情况下,似乎总是使用Flash,所以我不知道本机html5播放器中是否存在问题.)
视频仅在*.mp4文件完全加载后才开始播放.所以没有缓冲几秒钟.在开始播放之前,浏览器必须完全下载该文件.
当视频很长时,访问者必须等待很长时间才能看到视频正常工作.
现在的问题是,是浏览器,脚本(video.js)还是创建该问题的视频文件.
但是在videojs.com网站上,视频在加载时正在播放,因此工作正常.因此我认为它不可能是浏览器.
还有其他人有这个问题吗?我该如何解决这个问题?
非常感谢任何建议!
谢谢
马克斯
如何使用Xuggle将flv视频转换为Mp4格式?我需要研究哪种api方法?任何链接/指针都会有所帮助
我有一系列具有透明度的PNG文件 - 我想在屏幕上混合它们在视频之上
ffmpeg -i video.mp4 -i "Images/%03d.png" -filter_complex "blend=all_mode='screen':all_opacity=0.7" output.mp4
Run Code Online (Sandbox Code Playgroud)
图像确实合并在视频的顶部,但带有粉红色的叠加层?
我还尝试添加"-vcodec png"和"-vcodec libx264"并尝试.mov视频,但得到了相同的结果.
ffmpeg version N-58061-g5231eec Copyright (c) 2000-2013 the FFmpeg developers
built on Nov 14 2013 05:35:15 with gcc 4.6 (Debian 4.6.3-1)
configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-
static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static'
--extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-
ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-
cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-
libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --
enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --
enable-libvpx
libavutil 52. 52.100 / 52. 52.100
libavcodec 55. …Run Code Online (Sandbox Code Playgroud) 我试图使用MediaCodec API进行解码,而不使用MediaExtractor API.相反,我使用mp4parser从mp4文件中获取样本.目前,我只使用h.264/avc编码的视频内容.
MediaCodec API的官方文档指出:
缓冲区不会在任意字节边界上开始和结束,这不是字节流,而是访问单元流.
意思是,我必须将访问单元提供给解码器.但是,我想念这些信息中的一些细节:
对于h.264,在mp4样本中,可以有多个NAL单元,每个单元前面有4个(默认)字节,指定NAL单元长度.
现在我的问题:
可以有mp4样本,其中编解码器配置NAL单元(sps,pps)与包含编码(部分)帧的NAL单元混合.在那种情况下,我应该BUFFER_FLAG_CODEC_CONFIG在通话时通过旗帜queueInputBuffers()吗?
mp4样本中还可以有其他(附加)NAL单元,如SEI或访问单元定界符NAL单元.那些呢?没问题?
我尝试了不同的可能性,但我从Android获得的所有反馈都是dequeueOutputBuffer()超时调用(或者如果我-1作为超时参数传递则不返回).因此,我似乎无法解决此问题.
任何建议做什么或在哪里看也是非常受欢迎的.
我有一些带动画GIF的HTML5视频作为后备.遗憾的是,即使支持HTML5视频,也会加载GIF.
不使用javascript,有没有办法阻止浏览器下载HTML5后备内容?如果没有,我将使用jquery,但想知道是否有非js解决方案.
<video>
<source src="animation-1.mp4" type="video/mp4">
<img src="animation-1.gif">
</video>
<video>
<source src="animation-2.mp4" type="video/mp4">
<img src="animation-2.gif">
</video>
<video>
<source src="animation-3.mp4" type="video/mp4">
<img src="animation-3.gif">
</video>
Run Code Online (Sandbox Code Playgroud)
网络检查员显示Firefox(以及Chrome)肯定正在下载GIF:

如何将视频从ISOM转换为MP42?特别是使用FFMPEG?没有这样的选项来指定它.
常规完整名称:C:\ wamp\www\tree.mp4格式:MPEG-4格式配置文件:基本媒体编解码器ID:isom文件大小:763 KiB持续时间:3s 834ms总比特率:1 630 Kbps写作应用:Lavf56.30.100
我正在寻找一种用rtmp播放视频的方法.我使用video-js但它不起作用.Firebug返回错误:
L'attribut « type » spécifié sur « video/flash » n'est pas géré. Le chargement de la ressource média rtmp://server.com/vod/mp4:foo/bar/my_video.mp4 a échoué.
VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) No compatible source was found for this video. MediaError { code=4, message="No compatible source was found for this video."
Run Code Online (Sandbox Code Playgroud)
HTML代码:
<!doctype html>
<html lang="fr" class="no-js">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="stylesheet" href="css/reset.css"> <!-- CSS reset -->
<link rel="stylesheet" href="css/video-js.css"> <!-- Video.js -->
<link rel="stylesheet" href="css/style.css"> <!-- Resource style -->
<script src="js/modernizr.js"></script> …Run Code Online (Sandbox Code Playgroud) 如何mp4将给定文件夹中的所有文件转换为mp3使用ffmpeg.我在google上看到的几乎所有链接都是关于将mp4视频转换为mp3.我可以通过VLC播放器做到这一点,但我有大量收集~1000 mp4音频文件,并希望通过某些脚本或命令通过命令行完成.是否可以通过gstreamer进行?