使用相同的ffmpeg命令

时间:2017-03-21 12:58:43

标签: java android video lambda ffmpeg

我在这里结束了我的智慧。所以我有一个AWS lambda,它只是一些在视频文件上运行ffmpeg命令的Java代码。当我下载这个视频文件并对其进行ffprobe时,元数据看起来与我从同一个文件中获取相同文件并从命令行本地运行相同的ffmpeg命令时看起来不同。我不知道为什么会这样。我确保拥有相同的ffmpeg版本和所有版本,但是运行命令的lambda生成的文件与其他文件相比缺少了。我之所以这样看是因为运行命令的lambda导致的这个文件在某些​​播放器上无法播放(例如android exoplayer和Android的Android /移动版本有问题)我运行命令后可以在我尝试过的任何地方播放。以下是不同的元数据:

在本地运行:

Metadata:
  service_name    : Service01
  service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, progressive), 1280x720 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 95 kb/s

vs由lambda运行:

Metadata:
  service_name    : Service01
  service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 95 kb/s

正如你所看到的那样,人们在决议旁边明确指出了DAR和SAR,并且还有#34; tv"在yuv420p旁边括号中的渐进式旁边。我已经尝试通过添加更多过滤器和标志来调整命令,但最终结果是相同的...我不确定这会解决我的可玩性问题,但是有人可以解释为什么最终结果不同尽管使用ffmpeg和所有的相同版本(都是64位)?

1 个答案:

答案 0 :(得分:0)

Android无法播放视频的问题最终与此无关。这只是因为所生成的文件的扩展名都是大写的,并且android并没有真正识别它。