Ffmpeg Libav:无法从d.tube读取带有mp4文件的帧

Ffmpeg Libav:无法从d.tube读取带有mp4文件的帧,ffmpeg,mp4,h.264,libav,Ffmpeg,Mp4,H.264,Libav,我正在尝试从中读取带有mp4文件的帧。这个网站的视频有一个问题,无论是流视频还是文件视频。当我尝试使用avformat\u find\u stream\u info()时,我收到以下消息: [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1226040] stream 0, offset 0x30: partial file [mov,mp4,m4a,3gp,3g2,mj2 @ 0x1226040] Could not find codec parameters for stream

我正在尝试从中读取带有mp4文件的帧。这个网站的视频有一个问题,无论是流视频还是文件视频。当我尝试使用
avformat\u find\u stream\u info()
时,我收到以下消息:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1226040] stream 0, offset 0x30: partial file
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1226040] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 854x480, 287 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x1226040] Could not find codec parameters for stream 1 (Audio: aac (mp4a / 0x6134706D), 48000 Hz, 2 channels, 128 kb/s): unspecified sample format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
我试着与Youtube上的mp4文件进行比较,但根本没有问题。在找不到解决方案后,我跳过了此消息并继续,但在处理输入时发现了无效数据 来自
av\u read\u frame()
的错误。可能是因为同一个原因


相反,使用ffmpeg命令获取视频信息和提取帧没有问题。我还尝试了不同版本的ffmpeg,但结果相同。我试图修改的示例代码可以在上找到。此外,我已经添加了ffmpeg的配置,其中包含
——enable decoder=h264——enable demuxer=h264——enable demuxer=mp4——enable demuxer=h264——enable parser=h264——enable gpl——enable-libx264——enable encoder=libx264
,“相反,使用ffmpeg命令没有问题”这是否意味着命令行上的FFmpeg可以接受DTube文件,但
libAV
将无法工作?不管怎样,我检查了D.Tube视频字节,它们很好,所以我不确定你能做什么。它们的格式与Youtube相同(甚至与“谷歌制作”在
soun
atom中对两个文件头的版权相同)。@VC.One是的,它可以在ffmpeg命令行上工作,但不能在libAV上工作(通过测试)。当我尝试使用
av\u dump\u format()
查看文件信息时,我看不到“由谷歌制作”。这正常吗?我从DTube下载的文件来自curl和browser的下载。我刚刚发现
MP4Box-hint
解决了这个问题,如果我用这个命令处理一个文件。我认为类似的
qt-faststart
也可以解决这个问题。当我在谷歌上搜索时,它是为了重新排列并将原子移动到前面。