video - ffmpeg复制流保留FPS

标签 video ffmpeg

我有一个我知道以特定帧速率(30 FPS)输出的流。我想使用 ffmpeg 制作这个流的副本并将其保存到磁盘。

我有以下命令:

ffmpeg -i http://input/ -c copy -map 0 \
    -f segment -strftime 1 -segment_time 900 \
    -segment_atclocktime 1 -segment_format mp4 %Y-%m-%d_%H-%M-%S.mp4

但是当我运行命令时,我看到以下内容:
frame=   32 fps=3.9 q=-1.0 Lsize=N/A time=00:00:01.27 bitrate=N/A

FPS 似乎在 ~4.0 FPS 和 time 附近徘徊移动比实时慢。

我尝试添加 -re (复制输入流的速率)和-r 30 (手动将速率设置为 30 FPS)标志在输入文件之前指定,但它似乎不起作用。

我还阅读了a similar question here使用 -framerate 30 , 但该选项在手册页中不存在并且是 Invalid option .

任何帮助将不胜感激!

所以我让修改后的命令(删除标志 -c copy -map 0 )运行了整整 5 分钟。运行ffprobe产量:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '2017-03-10_01-09-12.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.2.100
  Duration: 00:00:15.43, start: 0.066016, bitrate: 13416 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 1024x768, 13414 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler

同样,这只产生 15 秒的视频,我似乎无法实时获得 30 FPS 的输入流和 30 FPS 的输出流之间的 1:1 关系。播放视频会加快速度。

最佳答案

这就是处理速度,即每秒处理 4 帧。这不是输出流 FPS。无论如何,在流复制模式下,FFmpeg 无法更改输出 FPS,除非您的输入是原始比特流。

关于video - ffmpeg复制流保留FPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42710623/

相关文章:

python - 有没有办法使用 ffmpeg 将 RTSP 音频流仅流式传输到标准输出

FFmpeg 可以用作库而不是独立程序吗?

node.js - 如何在 NodeJs 中生成视频缩略图?

apache-flex - 闪存/弹性 : progressive download vs. rtmp

android - 如何将 View 内部发生的事情记录为视频? (安卓)

video - 如何解码使用 FFMPEG 编码的实时流?

html - 我无法在 iframe 中设置视频。怎么做?

video - Twitter - 如何将其他人的推文中的原生视频嵌入到新推文或 DM 中

ffmpeg - 使用ffmpeg在视频上随机插入多个图像

ffmpeg - FFPROBE - "Unspecified pixel format"