ffmpeg 帧率问题 h264+ass 到 mkv

Posted

技术标签:

【中文标题】ffmpeg 帧率问题 h264+ass 到 mkv【英文标题】:ffmpeg frame rate issue h264+ass to mkv 【发布时间】:2013-06-27 20:38:18 【问题描述】:

我正在为 ffmpeg 使用这个命令:

ffmpeg  -i 1.h264 -i ass1.ass -map 0 -map 1 -c copy test.mkv

h264 文件为 30 fps...mkv 以 25fps 播放,因此运行缓慢

h264 来自我的高清网络摄像头。如果我将相机上的帧速率更改为 25,它可以正常工作,并且 15fps 可以高速播放。我可以强制帧率吗?如果我需要一个不同的命令行工具来更改它,这是可以接受的。但是,如果我可以从 ffmpeg 中修复它,那将是理想的。我正在运行来自 vb.net 的命令。

command output
C:\Record\Normal\2013-06-27>c:\ffmpeg\bin\ffmpeg  -i 1.h264 -i ass1.ass -map 0 -
map 1 -c copy test.mkv
ffmpeg version N-54207-ge59fb3f Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun 25 2013 21:55:00 with gcc 4.7.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
eex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-
amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --
enable-libxvid --enable-zlib
  libavutil      52. 37.101 / 52. 37.101
  libavcodec     55. 17.100 / 55. 17.100
  libavformat    55. 10.100 / 55. 10.100
  libavdevice    55.  2.100 / 55.  2.100
  libavfilter     3. 77.101 /  3. 77.101
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, h264, from '1.h264':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264 (Baseline), yuv420p, 1920x1088 [SAR 1:1 DAR 30:17],
 25 fps, 25 tbr, 1200k tbn, 50 tbc
Input #1, ass, from 'ass1.ass':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Subtitle: ssa
File 'test.mkv' already exists. Overwrite ? [y/N] y
Output #0, matroska, to 'test.mkv':
  Metadata:
    encoder         : Lavf55.10.100
    Stream #0:0: Video: h264 (H264 / 0x34363248), yuv420p, 1920x1088 [SAR 1:1 DA
R 30:17], q=2-31, 25 fps, 1k tbn, 1200k tbc
    Stream #0:1: Subtitle: ssa
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=  144 fps=0.0 q=-1.0 Lsize=    2451kB time=00:00:05.72 bitrate=3509.6kbits
/s
video:2447kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.125529%

【问题讨论】:

【参考方案1】:

例如。将输出文件的帧速率强制为 24 fps (-r):

ffmpeg -i input.avi -r 24 output.avi

【讨论】:

我用过,, ffmpeg -r 30 -i 1.h264 -i ass1.ass -map 0 -map 1 -c copy test.mkv .thank you

以上是关于ffmpeg 帧率问题 h264+ass 到 mkv的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg 转换命令输出到 iPad 的 h.264

直播开发步骤

在ffmpeg H.264解码器中修改运动向量

将 .ass (ssa, aegisub) SubStationAlpha subs 添加到 mp4 的最快方法?

ffmpeg 使用 Nvidia 硬件编码器编码 H.264

如何使用 ffmpeg 对 H.264 中的视频进行编码?