标签: mpeg-4

如何处理原始UDP数据包,以便它们可以通过directshow源过滤器中的解码器过滤器进行解码

很长的故事:

  1. 有一个H264/MPEG-4源
  2. 我可以将此源与RTSP协议连接起来.
  3. 我能够使用RTP协议获取原始UDP数据包.
  4. 然后将这些原始UDP数据包发送到解码器[h264/mpeg-4] [DS源过滤器]
  5. 但是这些"原始"UDP数据包无法通过解码器[h264/mpeg-4]过滤器进行解码

不久:

如何处理这些原始UDP数据以便通过H264/MPEG-4解码器过滤器进行解码?任何人都可以清楚地确定我与H264/MPEG流有关的步骤吗?

额外信息:

我可以用FFmpeg做到这一点......但是我无法弄清楚FFmpeg如何处理原始数据以便解码器可以解码.

directshow rtp rtsp h.264 mpeg-4

39
推荐指数
1
解决办法
4万
查看次数

从MP4/FLV中提取帧?

我知道FFMPEG是可能的,但是如果我有一个部分文件(比如没有开头和结尾)该怎么办.有可能从中提取一些帧吗?

flv mp4 ffmpeg video-encoding mpeg-4

34
推荐指数
1
解决办法
4万
查看次数

通过MP4直播

我正在从事在线电视服务.其中一个目标是在没有任何其他浏览器插件的情况下播放视频(Flash除外).

我决定使用MP4,因为大多数HTML5浏览器和Flash支持它(用于后备).视频由FFMpeg在服务器上从ASF转码.

但是,我发现MP4不能实时流式传输,因为它有一个moov原子用于必须指定长度的元数据.FFMpeg无法直接将mp4流式传输到stdout,因为它将moov放在文件的末尾.(MP4的实时转码和流式传输在Android中有效,但在Flash Player中无法使用NetStream.Play.FileStructureInvalid错误)

当然,MPEG-TS存在,但HTML5不支持<video>.

我想到的是一种将流实时转码为MP4的方法,并且在每个新的HTTP请求中,首先发送一个指定视频长度非常长的数字的moov,然后开始发送其余的MP4文件.

是否可以使用MP4进行流式传输?

经过一些研究和av501的回答,我知道框架的尺寸必须是已知的,以便它可以工作.

mp4文件可以分割成更小的部分,以便可以流式传输吗?

当然,切换到另一个容器/格式是一个选项,但唯一兼容Flash和HTML5的格式是mp4/h264,所以如果我必须支持两者,我必须转码两次.

streaming mp4 mpeg h.264 mpeg-4

34
推荐指数
2
解决办法
4万
查看次数

获取H264Video流的尺寸

我试图从H264流中获取尺寸(高度和宽度).我知道要从mpeg2流中获取相同的详细信息,您必须查看序列头开始代码后面的四个字节((01B3)).H264的逻辑是否相同?非常感谢我得到的任何帮助..

video video-processing mpeg-2 h.264 mpeg-4

22
推荐指数
3
解决办法
3万
查看次数

如何创建解码器的完整副本?

我正在编写一个视频解码器(使用FFMPEG/AVCodec)来自定义实现mpeg4视频流.这个视频流的特点是它可以分成许多"子"流,根据同一个父节点创建许多P帧.我正在尝试解码的视频流实际上是一种"视频树".像这样的东西:

I <--P <--P <---------------------P <-------------- P <------------ P
           \ <--P <--P <--P        \ <--P <--P       \ <--P <--P 
Run Code Online (Sandbox Code Playgroud)

我已经写了一个基本的解码器,当我决定遵循一条路径时工作正常,问题是当我尝试在视频树中跟随多个路径时.此时我需要"解析"我的解码器以跟随两个不同的视频流.拆分不仅可能发生在关键帧之后,甚至在P帧之后,所以我需要复制AVCodecContext(我使用avcodec_copy_context)但它似乎从干净的状态创建新的解码器..它似乎忽略了以前的视频状态因此,解码的P帧被"应用"到空视频帧.可能复制上下文使用avcodec_copy_context是不够的...任何建议?如何复制上下文和解码器的完整状态?或者,有没有其他方法使用引用解码我的流?谢谢!

ffmpeg mpeg-4 libavcodec avcodec

15
推荐指数
1
解决办法
1825
查看次数

通过MP4视频向后搜索时,显示时间戳不正确

我正在使用MediaCodecMediaExtractor以可变速率播放视频,包括向前和向后.代码使用类似SpeedControlCallback的东西来建立帧间暂停 - presentationTimeUs从输出缓冲区向它提供字段.

99%的情况下,这种方法很好,但是看起来三星S6上的AVC编解码器在向后搜索时提供了错误的演示时间 - 它们被固定在寻求转发的最高价值时,如果这有意义的话.缓冲区中的数据是正确/更改的 - 它只是与固定的显示时间不对应.

S6可以处理具有品牌/ ftype的MP4文件中的后向搜索avc1,但我尝试过的其他品牌的H.264视频(mp42,isom)在100%的时间内都不起作用.相同的文件在三星S5以及我尝试过的所有其他设备上都能正常工作.

编解码器记录这个:

09-15 11:16:21.611 2992-16618/? W/EXYNOS_VIDEO_DEC? sCurrentTimestamp(6002033) is smaller than latestTimeStamp(7001744), uses latestTimeStamp

在每个向后搜索(SEEK_TO_PREVIOUS_SYNC),并将latestTimestampValue为所有关键帧提供错误.

有没有人在Galaxy S6上遇到与AVC编解码器类似的问题,或者是否可以提供任何(非hacky)解决方案?

video android h.264 mpeg-4 android-video-player

15
推荐指数
0
解决办法
230
查看次数

在Android上以编程方式获取MPEG-4视频流的配置文件

有没有办法使用标准Android API 获取MPEG-4视频文件的个人资料代码

示例配置文件的代码如下:baseline,main,high等.

我不想ffmpeg在Android应用程序中包含二进制文件以获取此信息.

我在MediaCodecInfo.CodecProfileLevel类中找到了配置文件列表的引用.任何人都可以确认这是否是我应该使用的那个?

以下是从MX Player应用程序中 获取的视频信息的示例屏幕截图带视频资料的示例数据


  • 更新#1:我查看了MX Player应用程序,看起来他们使用ffmpeg二进制文件,所以我可以肯定地说他们使用它来提取profile-code.
  • 更新#2:我也查看了ExoPlayer v1 API,它们似乎也没有特定的API来获取此信息.

android mpeg-4 android-mediaplayer mediaextractor android-mediacodec

11
推荐指数
1
解决办法
954
查看次数

MPEG-4第2部分有一些很棒的面部和身体动作概念,但它们在MPEG-4 Part 10(H.264)中消失了.为什么?

在过去的几周里,我有机会阅读两份文件:

  • MPEG-4第2部分规范(ISO/IEC 14496-2),人们称之为"mpeg-4"
  • MPEG-4 Part 10规范(ISO/IEC 14496-10),也称为"h.264"或"AVC"

在阅读了"mpeg-4"中所有很酷的想法之后,比如识别面部表情,四肢动作和精灵,我真的很兴奋.对于1999年的想法,这些想法听起来非常有趣,甚至可能很棒.

但后来我读了"h.264"标准,并没有那些想法.关于如何编码像素有很多讨论,但没有一个非常酷的想法.

发生了什么?为什么删除这些想法?

这不是一个代码问题,但作为程序员,我觉得我应该尝试理解规范背后的意图.如果我编写的代码遵循了使用规范的精神,那么更有可能定位于利用整个规范.

history specifications mpeg-4

10
推荐指数
1
解决办法
510
查看次数

如何在播放器上播放MPEG-DASH的mpd中给出的.m4s文件?

我已经下载了MPD" http://dash.edgesuite.net/adobe/hdworld_dash/HDWorld.mpd "以及所有相关的.m4s文件.我试过在VLC播放器上运行它.但VLC播放器无法识别该格式.

我已经使用wget(1到14个段可用) 下载了这个媒体片段http://dash.edgesuite.net/adobe/hdworld_dash/hdworld_seg_hdworld_0696kbps_ffmpeg.mp4.video_temp2.​​m4s.

谁能告诉我如何在播放器上运行.m4s格式文件?

系统:Ubuntu 11.10

c linux file-format video-streaming mpeg-4

9
推荐指数
3
解决办法
4万
查看次数

将视频(或渐进式下载)流式传输到Droid浏览器

我正在尝试将视频(或使用渐进式下载)流式传输到摩托罗拉Droid浏览器,并且没有太多运气.使用我的iPhone,我可以将Safari 导向http://xxx.xxx.xxx/FileName.mp4(这是一个MPEG-4视频文件),Safari可以快速打开,并播放视频.但是,使用Droid,我会转到同一个网址,并面临一个错误,指出"无法播放视频......很抱歉,此视频无法播放到此设备".

当我将Droid的浏览器导向WMV文件时,它将完全下载视频文件,然后在看起来像Droid视频播放器的情况下播放它,如果我点击它.

理想情况下,我想在Droid上复制iPhone的行为,视频播放器弹出,视频在完全下载之前启动.视频格式不是问题,因为我可以将视频编码为几乎任何标准.我正在尝试.mp4文件,因为Droid文档说它支持MPEG-4视频,虽然我无法从浏览器中使用它.

任何见解都会非常感激.

iphone video android mpeg-4

8
推荐指数
1
解决办法
4815
查看次数