【问题标题】:ffprobe output video: pngffprobe 输出视频:png
【发布时间】:2020-04-08 00:19:20
【问题描述】:

ffprobe 告诉我我的视频文件是 png。

[png_pipe @ 0x7f9ece003c00] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, png_pipe, from '1.ts':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: png, rgb24(pc), 1x1 [SAR 3779:3779 DAR 1:1], 25 tbr, 25 tbn, 25 tbc

我有点困惑,因为它可以作为 ts 或 mpeg 文件播放。但是当我运行ffmpeg -y -i in.ts -acodec copy -vcodec copy out.mp4 时,命令完成得很好,但我最终得到了一个无法播放的文件。我从 Quicktime 收到“操作无法完成”的警报,我也无法在 Chrome 或 Firefox 中打开它,所以我知道这不是 Quicktime 的问题。

所以,这可能与视频是 png 视频有关。我一直认为 png 只是一种图像格式,但我在这里。谁能给我一些关于这方面的信息,我怎样才能把它转换成 mp4?

【问题讨论】:

    标签: video ffmpeg file-format ffprobe


    【解决方案1】:

    我遇到了同样的问题,它可能是一个伪装成 PNG 标头的流。

    我用 dd 去掉了第一个 8 个字节,ffprobe 检测到了正确的格式。

    dd if=1.ts of=fixed/1.ts ibs=8 skip=1
    

    【讨论】:

    • 谢谢,这成功了!你能解释一下编码吗,因为我仍然对 ffprobe 为什么返回 png 感到困惑?
    【解决方案2】:

    通过使用-vcodec copy,您将视频作为PNG 流存储在MP4 中。这是有效的,但没有得到玩家的广泛支持。相反,将其编码为标准 H.264 yuv420p 像素流。

    ffmpeg -y -i in.ts -c:a copy -c:v libx264 -pix_fmt yuv420p out.mp4
    

    编辑:

    该块实际上是 MPEG-TS,但前 127 个字节似乎是一个附加在前面的小 PNG 文件。强制输入格式允许正确解码。

    跑吧,

    ffmpeg -y -f mpegts -i in.ts -c copy out.mp4
    

    【讨论】:

    • 它说无效的png签名i.imgur.com/P5Nw4Nm.png
    • ffplay in.ts 播放文件吗?
    • 不,我得到了同样无效的 png 签名。
    • 哪个玩家播放它?
    • 只有 Quicktime。 Chrome 和 Firefox 显示一个小白点,这甚至不是视频(可能与 png 有关),而 VLC 是一个 10 秒的空白屏幕视频。有趣的是,我在 VLC 中尝试了多个不同长度的,最后都是 10 秒。
    猜你喜欢
    • 1970-01-01
    • 2015-03-03
    • 2015-07-11
    • 2021-10-08
    • 1970-01-01
    • 2013-06-25
    • 2015-11-23
    • 2021-03-29
    • 2011-06-14
    相关资源
    最近更新 更多