我正在从事Android设备上的实时设备到服务器流式传输。我能够在服务器上以字节发送数据,但是当我在服务器上录制期间播放该文件时VLC说MOOV原子未找到。在很多解决方法之后,我发现最后生成的mp4文件的原子会生成MOOV。但是我必须在服务器上播放该文件,而录制则意味着直播。我通过SPYDROID和SIPDROID的源代码,但他们都不工作。我试图使用FFMPEG在服务器端添加移动原子,但没有得到任何成功。任何人都有任何想法,我怎么能实现这一点。提前Thanx。如何在mp4视频文件中添加MOOV原子
回答
运行qt_faststart将moov原子移动到流的开始位置。
qt-faststart in.mp4 out.mp4
你有问题。 'moov'框是一种内容表。如果不是所有的内容都在那里,你就无法获得完整的目录。哎哟!
如果你想坚持使用MP4,并且如果你自己编写文件,你可以将文件编写为所谓的分段MP4文件。碎片化的MP4文件包含多个视频独立的小部分 - 每个都有自己的目录。这将使您能够在完整录制完成之前播放该文件。
如果你不需要坚持使用MP4,一个选项是将原始h264流写入服务器。那么你没有那种内容表。 VLC可以播放原始的h264流。
您好sebsatian,我不能够在视频录制时获得Android的行数据,请问我可以如何实现这一点。 – Ravinder 2012-07-19 07:13:28
我知道MP4,但不是特别的Android。也许你应该创建一个新的问题。 – 2012-07-19 12:49:46
这样做的另一种方法可能是只记录一两秒钟,然后在服务器上重新连接?! – 2012-07-20 09:58:03
使用MP4Box将MOOV原子移动到文件开始处,并将交错存储到数据流中。
MP4Box test.mp4 test.mp4
它不适合我。返回: 错误 - 指定了2个输入名称,请检查使用情况 MP4Box版本0.5.0-rev4065 – 2013-10-12 19:05:45
添加到您的这个gradle这个LIB:编译 'net.ypresto.qtfaststartjava:qtfaststart:0.1.0' 然后
File input = new File(path + "/input.mp4"); // Your input file
File output = new File(path + "/output.mp4"); // Your output file
try{
if(!output.exists()) // if there is no output file we'll create one
output.createNewFile();
}
}catch (IOException e){
Log.e("TAG", e.toString());
}
try{
QtFastStart.fastStart(input, output); // Adds moov to your input
// Now your output file is ready to stream!
}catch (QtFastStart.MalformedFileException m){
Log.e("QT", m.toString());
}catch (QtFastStart.UnsupportedFileException q){
Log.e("QT", q.toString());
}catch (IOException i){
Log.e("QT", i.toString());
}
这里说的一切都
有可能使用FFMpeg将moov原子移动到视频文件的开头。
ffmpeg -i input_video_file.mp4 -vcodec copy -acodec copy -movflags +faststart output_video_file.mp4
- 1. 如何为mp4视频添加水印?
- 2. 如何区分.mp4音频文件和.mp4视频文件在ASP.Net中C#
- 3. 把MOOV原子放在MP4文件的开头是否有缺点?
- 4. MP4视频文件播放视频
- 5. 是否有可能伪造(mp4)moov原子?
- 6. 如何将视频文件(mp4)添加到我的android应用程序中?
- 7. 的Moov原子搬迁
- 8. 如何在jwplayer中的php文件中播放mp4视频
- 9. 如何在Konva阶段添加视频(.mp4,.mov)?
- 10. 如何在JFrame中播放mp4视频文件?
- 11. 如何在Firefox中播放MP4视频
- 12. 在iPhone中添加视频文件
- 13. 如何添加标签到MP4文件?
- 14. 从原始资源文件夹播放.MP4视频
- 15. 如何在离子中播放视频.avi或mp4
- 16. 播放MP4以外的视频文件
- 17. FFmpeg解码.mp4视频文件
- 18. PHP返回一个MP4视频文件
- 19. 宽屏转换为MP4视频文件,
- 20. 如何在mp4中编辑或添加“旋转”的视频元数据?
- 21. 如何在html上嵌入mp4视频?
- 22. 将3gp moov原子从一个文件复制到另一个
- 23. .MOD转换视频文件的MP4,但保留原始文件的日期
- 24. 如何在视频中添加字幕
- 25. 如何在视频中添加绑定
- 26. 的Moov原子记录的数据
- 27. Rails 3 Webrick的问题和为iPhone/iPad(mp4 m4v)视频文件加载视频
- 28. 从零碎MP4“mdat”原子重建MP4文件?
- 29. ffmpeg,替换mp4视频文件中的部分音频
- 30. 如何将视频添加到iPhone SDK上的音频文件
乌拉圭回合rply喜d33pika..thnx,我想给在服务器上的视频数据同时记录,但MOOV原子录制完成,以便这就是为什么我认为QT-的fastStart不会有所帮助这里后产生。 – Ravinder 2012-07-19 07:12:35
你解决了你的问题@Ravinder?我现在正在尝试完全一样,并没有看到可行的解决方案。如果你知道,请在这里发表评论。 – 2014-11-16 18:33:36
如何在android中使用qt-faststart?有人可以发布示例代码吗? – 2016-06-23 04:49:14