【发布时间】:2017-08-10 19:46:54
【问题描述】:
我的智慧在这里结束了。所以我有一个 AWS lambda,它只是一些在视频文件上运行 ffmpeg 命令的 Java 代码。当我下载这个视频文件并对其进行 ffprobe 时,元数据看起来与我抓取同一个文件并从命令行在本地运行相同的 ffmpeg 命令时的样子不同。我不知道为什么会这样。我确保具有相同的 ffmpeg 版本和所有版本,但是与另一个文件相比,运行该命令的 lambda 生成的文件缺少一些东西。我在看这个的原因是这个由运行命令的 lambda 产生的文件不能在某些播放器上播放(例如,android exoplayer 和 android/mobile 版本的 Chrome 有问题),而这个文件是由运行命令的我在我尝试过的任何地方都可以播放。以下是不同的元数据:
在本地运行:
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,并且在 yuv420p 旁边的括号中的渐进式旁边还有“tv”。我尝试通过添加更多过滤器和标志来调整命令,但最终结果是相同的......我不确定这会解决我的可玩性问题,但有人可以解释为什么尽管使用相同的最终结果会有所不同ffmpeg 和所有版本(都是 64 位)?
【问题讨论】:
-
显示命令和完整的控制台输出。
-
看起来你在命令中省略了配置文件级别并让 ffmpeg 弄清楚,尝试在这两种情况下强制它成为基线。
标签: java android video lambda ffmpeg