找回密码
 立即注册
搜索
查看: 1198|回复: 8

[软件] 请教下 ffmpeg 合并视频的问题

[复制链接]
     
发表于 2019-3-27 18:14 | 显示全部楼层 |阅读模式
本帖最后由 匿名用户 于 2019-3-27 18:44 编辑

没怎么用过 ffmpeg,也很缺乏视频编码知识,在操作中遇到了些问题。

一、需求:
我有一段视频,想在前面加一张持续几秒的静态图片。

二、我的操作:
我的想法是先把图片转成视频,然后进行合并。
图片转视频我用的命令是:
  1. ffmpeg -loop 1 -f image2 -i sc.png -vcodec libx264 -t 6 intro.mp4
复制代码


之后用 concat 将 filelist.txt 中列出的两个文件进行合并:
  1. ffmpeg -f concat -i filelist.txt -c copy output.mp4
复制代码


三、问题:
合并后的输出文件,变成了慢动作。(理论上应该是 4 分多钟的视频,变成了 28 分钟。)
我查看了下合并前的两个视频,编码信息分别如下:
intro.mp4:25 fps  bitrate: 351 kb/s
  1. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'intro.mp4':
  2.   Metadata:
  3.     major_brand     : isom
  4.     minor_version   : 512
  5.     compatible_brands: isomiso2avc1mp41
  6.     encoder         : Lavf58.24.101
  7.   Duration: 00:00:06.00, start: 0.000000, bitrate: 351 kb/s
  8.     Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 1920x1080 [SAR 1:1 DAR 16:9], 347 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
复制代码


content.mp4:60 fps  bitrate: 40294 kb/s   
  1. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'content.mp4':
  2.   Metadata:
  3.     major_brand     : mp42
  4.     minor_version   : 0
  5.     compatible_brands: isommp42
  6.     creation_time   : 2019-03-26T10:12:39.000000Z
  7.     date            : 2019
  8.   Duration: 00:04:50.08, start: 0.000000, bitrate: 40294 kb/s
  9.     Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt470m), 1920x1080 [SAR 1:1 DAR 16:9], 39890 kb/s, 60 fps, 60 tbr, 90k tbn, 120 tbc (default)
  10.     Metadata:
  11.       creation_time   : 2019-03-26T10:12:39.000000Z
  12.       handler_name    : VideoHandle
  13.     Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 196 kb/s (default)
  14.     Metadata:
  15.       creation_time   : 2019-03-26T10:12:39.000000Z
  16.       handler_name    : SoundHandle
  17.     Stream #0:2(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 195 kb/s (default)
  18.     Metadata:
  19.       creation_time   : 2019-03-26T10:12:39.000000Z
  20.       handler_name    : SoundHandle
复制代码


请问下合并后输出视频慢动作,是因为两个源视频帧率和码率不一直造成的吗?

如果是的话,是应该在图片转视频的时候就设定好码率/帧率和另一视频一致吗?
我试过用 -r 60 -b 40294 k,但仍然无效。

还是我在合并时,需要设定参数按后一个视频的码率/帧率进行输出?
当然,如果有其他方便的方案可以解决一开始的需求的话,也可以提出来。


回复

使用道具 举报

     
发表于 2019-3-27 18:55 来自手机 | 显示全部楼层
用绘声绘影类似的软件吧,研究参数比较费心。
回复

使用道具 举报

     
发表于 2019-3-27 19:13 | 显示全部楼层
-r是指的输入端的fps,要改变fps,用下面的命令:
ffmpeg -loop 1 -i a.png -vf 'fps=60' -vcodec libx264 -t 6 intro.mp4
回复

使用道具 举报

发表于 2019-3-27 22:05 来自手机 | 显示全部楼层
路过问一下在视频网站下载的分段视频用ffmpeg合并能直接源码输出吗?
还有一段视频需要剪掉开头和结尾的广告,也能源码吗?
回复

使用道具 举报

     
发表于 2019-3-27 22:08 | 显示全部楼层
纯情小鸭鸭 发表于 2019-3-27 22:05
路过问一下在视频网站下载的分段视频用ffmpeg合并能直接源码输出吗?
还有一段视频需要剪掉开头和结尾的广 ...

可以,最后加上-c copy即可。
回复

使用道具 举报

发表于 2019-3-28 00:33 来自手机 | 显示全部楼层
elxy 发表于 2019-3-27 22:08
可以,最后加上-c copy即可。

那么合并和剪辑(提取)的具体代码是什么呢?
谢谢~
回复

使用道具 举报

     
发表于 2019-3-28 01:46 | 显示全部楼层
纯情小鸭鸭 发表于 2019-3-28 00:33
那么合并和剪辑(提取)的具体代码是什么呢?
谢谢~

裁剪
ffmpeg -i input.mp4 -ss 起始时间 -t 视频时长 -acodec copy -vcodec copy output.mp4
时间格式是 秒 或者 时:分:秒

合并
新建个文本文档filelist.txt,里面内容
file '01.mp4'
file '02.mp4'
ffmpeg -f concat -i filelist.txt -c copy output.mp4

都不用对视频重新编码,所以速度很快,不过裁剪的时间点可能并不是完全精确
以上命令建议你写成bat方便调用
回复

使用道具 举报

     
发表于 2019-3-28 04:07 来自手机 | 显示全部楼层
路过问一下,最近恰好有和主楼差不多的尝试,想把多张图片合成一个视频
在导入的时候是-r 1/6来让每个图片显示6秒的,时长也正确
但无论输出成webm还是mp4,播放时速度都非常奇怪,并不是平均的
4张图片,第2张在3秒就出现,一直延续到第12秒后后两张图片快速闪过,进度条还没走完播放就结束了
是哪里参数设置得不对吗

—— 来自 OnePlus ONEPLUS A3000, Android 9上的 S1Next-鹅版 v2.1.2
回复

使用道具 举报

     
发表于 2019-3-28 08:26 来自手机 | 显示全部楼层
SmterC 发表于 2019-3-28 04:07
路过问一下,最近恰好有和主楼差不多的尝试,想把多张图片合成一个视频
在导入的时候是-r 1/6来让每个图片 ...

试试把FPS设高一点,图片转的视频大小没啥影响。

—— 来自 Xiaomi MI 6, Android 9上的 S1Next-鹅版 v2.1.2

评分

参与人数 1战斗力 +1 收起 理由
SmterC + 1 感谢

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-16 18:10 , Processed in 0.059732 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表