小编Gur*_*ngh的帖子

如何解码从 mp4 视频中提取的 MDAT 原子帧

我是视频编解码器和学习视频文件格式规范的新手。我从这里阅读了有关 QUICKTIME 文件格式规范的信息,并从这里阅读了 MP4 文件格式(几乎相似)。有 FTYPE、MOOV、MDAT 等原子。MDAT 原子包含实际的音频和视频数据。MOOV 原子包含有关如何从 MDAT 中提取数据的信息,它提供了对块(样本)的引用。

我想从视频文件中提取 MDAT Atom 中的视频样本,而不使用 ffmpeg 或 juggler 等任何工具。我可以为此编写自己的代码。问题是,即使我可以使用 MOOV 中的信息找到 MDAT 中的视频数据(样本),这些样本也会被压缩。我们需要解压缩这些以获得帧。我的问题是我们可以解压缩从 MDAT 中提取的样本并获得实际的视频帧吗?

xuggler、ffmpeg 等工具用于从视频文件中提取帧。但在这里我想通过编写自己的代码从 MDAT 中提取样本(用于视频数据),然后我想使用某种工具解压缩这些样本。我不想写编解码器。

谁能帮我解决这个问题......!

谢谢...

mp4 quicktime ffmpeg video-encoding video-codecs

7
推荐指数
1
解决办法
4452
查看次数

OpenCV库加载在hadoop但不能正常工作

我正在尝试将OpenCV与Hadoop一起使用.以下是我的代码.我只是测试OpenCV库是否与Hadoop一起工作,即当我在public int run(String[] args)Hadoop 函数中运行OpenCV代码时 .

我在互联网上搜索,并找到了一些如何libopencv_java310.so在Hadoop中添加OpenCV本机库()的方法.我尝试了一些方法,但它没有用.例如本教程.

它说添加JAVA.LIBRARY.PATHhadoop-config.sh文件.但它没有用.我收到了这个错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path
at line
System.loadLibrary(Core.NATIVE.LIBRARY.NAME);
Run Code Online (Sandbox Code Playgroud)

最后,我将OpenCV本机库(libopencv_java310.so)添加到此路径(从Internet获得解决方案)

$HADOOP_HOME/lib/native
Run Code Online (Sandbox Code Playgroud)

它似乎有效.我没有得到上述错误.但是我在下一行得到了这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.objdetect.CascadeClassifier.CascadeClassifier_1(Ljava/lang/String;)
Run Code Online (Sandbox Code Playgroud)

此错误符合以下条件:

CascadeClassifier cad = new CascadeClassifier();
Run Code Online (Sandbox Code Playgroud)

据我所知,如果未加载OpenCV本机库,则会出现此错误.但是现在加载了库,我不知道这个错误的原因是什么.

 public int run(String[] args) throws Exception {
    Configuration conf = new Configuration();
    Job job = Job.getInstance(conf);
    job.setJarByClass(readVideoFile.class);
    job.setJobName("smallfilestoseqfile");
    job.setInputFormatClass(readVideoInputFormat.class);
    job.setNumReduceTasks(1);
    FileInputFormat.setInputPaths(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(Text.class);
    job.setMapperClass(readVideoMapper.class);

    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    CascadeClassifier cad …
Run Code Online (Sandbox Code Playgroud)

java opencv hadoop java.library.path hadoop-native-library

6
推荐指数
1
解决办法
504
查看次数