特大喜讯, ffmpeg git 版本支持新的 concatdec_select 这个 vf ,一次性全搞定了。不用临时文件
先建立个 list.txt 例如
file 'input1.mp4'
outpoint 300
file 'input2.mp4'
outpoint 300
file 'input3.mp4'
outpoint 300
...
file 'inputn.mp4'
outpoint 300
然后:
ffmpeg -f concat -i "list.txt" -r 48 -vf "select=concatdec_select,scale=1280x720,setsar=1,setpts=0.125*PTS" -sws_flags lanczos -c:v libx264 -crf 23 -an "merged-720p.mp4"
我来逐个解释下参数意思:
我实验了,效果很好。
1
old9 2016-01-03 21:47:21 +08:00 via Android
也就 ffmpeg 了……
|
2
loading 2016-01-03 21:48:53 +08:00 via Android
windows 有绘声绘影这些。
osx 应该也有的,就是视频编辑器。 adobe after effect 上手难度有点高… |
3
skydiver 2016-01-03 21:50:16 +08:00
比较好上手功能又强的软件,我用过一个 Sony Vegas ,不知道现在还有不
|
4
loading 2016-01-03 21:50:35 +08:00 via Android
工具是有,但是 ffmpeg 是根本,算法摆在那里,快不起来的。
网速快就传到 youtube 上,等它转好,下个流畅版本…哈哈 |
5
tanyuxiang 2016-01-03 21:50:56 +08:00 via Android
为啥不用 1080p 30fps
|
6
est OP @loading youtube 没法合并视频,这里还要去掉每个视频之间多出的冗余 1 秒。如果暴力合并,会发现视频抖一下。
@tanyuxiang 节省体积。没那个必要。况且 720p 效果已经很好了。行车记录仪的 1080p 很粗糙的。 |
7
est OP 而且我发现我 15 分钟的 720p ,就是 500MB 。而且画面大多数都是路面。。。。按理来说重复度很高啊。
真心觉得网上压电视剧的, 400M 近一个小时的 H.264 ,真心技术牛逼啊。我是不是哪里参数没调对啊。。。 orz 。。。。。。。。。。况且我还去掉了声音的啊。 我的参数: ffmpeg --i "original_1080p.mp4" -vf scale=1280x720,setsar=1 -sws_flags lanczos -c:v libx264 -crf 23 -an "720p.mp4" |
8
old9 2016-01-03 22:02:37 +08:00 via Android
crf 可再大点,可先压个 1 分钟看看可能接受。
多出来的一秒,考虑到关键帧的问题,估计很难切完美,将就将就吧 |
9
old9 2016-01-03 22:04:27 +08:00 via Android
4x 要再加个 filter
60fps 也没看明白,这需求 25fps 就够了吧? |
10
est OP |
11
old9 2016-01-03 22:12:00 +08:00 via Android
理论上 60fps 是流畅点,但是行车记录仪估计 25fps 也看不出什么区别…
写个脚本用 ffmpeg 切,就是切的效果未必好。 |
12
XianZaiZhuCe 2016-01-03 22:17:08 +08:00 via Android
没看懂,就是处理视频的需求? premiere pro 6 ?
|
13
Eleutherios 2016-01-03 23:50:54 +08:00
@est 为何不先拿 Y2B 转换格式再手动删除冗余+合并视频?
|
14
sennes 2016-01-04 00:41:05 +08:00 1
|
15
momou 2016-01-04 00:55:22 +08:00 via Android
貌似会声会影可以做到,许久不用了
|
16
sennes 2016-01-04 00:55:22 +08:00 3
我这个视频 48 秒,然后刚刚以 1000ms 为间隔取图像出来做 gif
虽然看起来挺卡的,不过用来给风景留个纪念应该还可以吧? 不知道能不能帮到您。 @livid 抱歉打扰下,我刚刚上传这个 gif 一直提示上传错误。最后发现其实都有上传而且铜板也重复扣了 8 次,心疼。 |
17
xuhaoyangx 2016-01-04 01:39:56 +08:00 1
crf 输出的大小,是根据画面复杂程度,清晰程度等等而定。
高清,画面简单, crf 23 有可能就才 100M. 清晰度不高,画面复杂(举个例:动作片,晚会灯光狂闪), crf 23 有可能就要几个 G 其次 X264 的其他参数也会影响 ffmpeg --i "original_1080p.mp4" -vf scale=1280x720,setsar=1 -sws_flags lanczos -c:v libx264 -crf 23 加-preset 9 -x264opts ref=5:bframes=5:me=umh:merange=24:aq-strength=0.8:qcomp=0.5:aq-mode=2 -psy-rd 0.3:0 -an "720p.mp4" 比较通用的高压参数 |
18
xuhaoyangx 2016-01-04 01:42:42 +08:00
忘了说 1280:720 这样比较规范,或者直接用-1 : 720 保留原视频的长宽比
|
19
KexyBiscuit 2016-01-04 02:55:37 +08:00 via Android 2
Try Microsoft Hyperlapse
|
20
20150517 2016-01-04 04:36:57 +08:00
aws 上好像有一个服务是视频压缩的,不过取决于你上传又要多久....
|
21
yangff 2016-01-04 09:05:38 +08:00
用 GPU 压吧……
|
23
est OP @KexyBiscuit 居然出 mac 版了。上次去看还只有 win 版的。
|
25
congeec 2016-01-04 09:31:17 +08:00
ffmpeg 能搞定你全部的需求,效果不理想是你参数没调好
|
26
est OP @congeec 目前用的就是 ffmpeg 。去掉那一秒有中间文件,合并视频又一个中间文件,想要一个能直接一次性搞定的办法。
|
27
ruoyu0088 2016-01-04 10:06:49 +08:00
用 blender 的视频编辑,用 Python 写一个脚本自动生成时间线。至于处理效率就不清楚了,不过只需要写一次程序,就可以大批量编辑视频了,而且没有中间文件。
|
28
chinuno 2016-01-04 10:09:24 +08:00
写个 avs 脚本,可以直接预览结果确认效果可以了用 megui 压制。第一个需求我没用过不太清楚能不能实现,不过下面三个肯定可以了
|
29
mhycy 2016-01-04 10:20:05 +08:00
如果是刚好一秒且帧率恒定(例如都是多出 24 帧)
可通过写 AVS 解决,所有文件按顺序编号命名,写个小脚本生成 AVS 的链接处理语句。 然后调用 ffmpeg 编码这个 avs ,如果是 win ,建议使用 megui ,即便没有 win ,也能虚拟机装一个生成命令。 水果有没有 x264 编码器就不知道了。 具体压制参数,有很多论坛讨论。。。 但是,高质量的都很慢。 另: 5G 很大么? |
30
est OP @mhycy 5G 的视频,才不到一个小时。我觉得很大啊。网上 720p 的电影, 2 个小时,也不过 2G 么。。。。。。。。。。为啥差距这么大。
|
32
dong3580 2016-01-04 12:40:20 +08:00
微软不是开发过一个 apple 版本的照相应用么,不知道现在有没有那种硬件,
|
33
AdamMaggie 2016-01-04 13:09:44 +08:00
用 Adobe Premiere Pro+Adobe Media Encoder
|
34
mhycy 2016-01-04 13:31:41 +08:00
|
36
skydiver 2016-01-04 15:05:37 +08:00
Mac 上还可以用 handbrake 吧
|
38
skydiver 2016-01-04 15:48:27 +08:00
@est 没办法,这个东西就是纯靠 CPU 的,当年做一个短片结果 30 分钟的短片渲染了 2 小时。。想要快,换个 CPU 强劲的台式机吧。。
|
40
stanzgy 2016-01-04 17:23:13 +08:00
@est 几年前用过 megui 压制视频,记得就是一个 x264 的 GUI 版本,方便调整各种参数,配合 avs 脚本对视频进行各种裁剪滤镜等操作挺方便的,用命令行敲命令都要累死人了。。设置码率记得 1-3pass 都可以, 2pass 是压制高清视频时平衡压制时间与视频质量的最常用设置。至于压制时间完全就是看 cpu ,没有什么可以取巧的地方。
|
42
stanzgy 2016-01-04 18:47:10 +08:00
@est 说起来感觉你的 32fps 的压制速度已经不错了。记得以前用一台 amd phenom II 925 [email protected] 机器, 8M 左右码率、 2pass 、 avs 做简单的 trim 锐化处理来压制视频,经常只有个位数的 fps ,一部 2 小时左右的电影压制 1080p 经常要不关机跑 2 天左右。现在硬件进步了,应该时间能快很多,你这里行车记录仪采集的图像应该质量不会很高,不需要的视频片段都可以用 avs 脚本裁掉,码率设置比较低的话,速度应该能快很多。
|
43
shyrock 2016-01-04 20:46:18 +08:00
记录仪原始视频帧率多少?你想弄成 60fps 估计需要重采样,当然又大又慢。。。
|
44
est OP @KexyBiscuit 用了这货。进度跑打雷 84%报了个 Unknown error 就退出了。我勒个大艹!
|
45
est OP @KexyBiscuit microsoft hyperlapse 有个最大的 bug 是只能利用单核。。 libx264 是双核 4 线程完全跑满的。
|
46
JamesRuan 2016-01-04 23:06:51 +08:00
60fps 的,同样时间大小就是 25fps 的四倍, 5G 也就相对于一般的 1G 左右的视频。
一个小时 x264 1G 还是 720p 的,画面已经不怎么清晰了。 @est 我觉得你对于技术有些过于乐观了,我当年剪辑 DV 的时候,无损压缩 20G 15min 左右的片子最终道出成 480p 的 Release 版本约 300M ,已经是酷睿 2 的时代了,还用了 5 个多小时! |
47
est OP @JamesRuan 嗯。我已经意识到现在压制视频很慢了!
综合了一下,感觉这个命令输出的视频质量足够而且体积很小 ffmpeg -i 1080p.mp4 -r 48 -vf "setpts=0.125*PTS,scale=1280x720" -c:v libx264 -sws_flags lanczos -an -crf 24 -preset slow out.mp4 压缩前: 50 分钟 30fps 的 1080p ,体积 4.45GB 压缩后: 5 分钟 48fps 的 720p ,体积 132MB , 8 倍速播放。 细节基本没丢失。 当然,要体验压制过程个位数 fps ,加上 deshake 这个 filter 即可。 |
48
vimutt 2016-01-05 00:51:06 +08:00 via Android
用 premiere 吧 分分钟搞定 h264 1080#720 均可 帧率 30 (这东西不是越大越好 要符合播放设备的标准 和实时渲染的动画不同) 具体的输出质量在 pr 内有可调参数 慢进快进效果也都非常简单 一小时的片子输出几百 Mb 也不成问题
|
51
xuhaoyangx 2016-01-05 13:59:56 +08:00
|
52
est OP |
53
est OP 找了个 PC , i7 4790 ,发现 fps 只有 22 。。。一样的 ffmpeg 参数。我心里平衡了!
|
54
xuhaoyangx 2016-01-05 14:52:10 +08:00
@est 因为要做很多处理, 0.5fps 很正常,特别是动漫。
|
55
est OP @old9
@loading @xuhaoyangx @congeec @mhycy 特大喜讯, ffmpeg git 版本支持新的 concatdec_select 这个 vf ,一次性全搞定了。不用临时文件 先建立个 list.txt 例如 file 'input1.mp4' outpoint 300 file 'input2.mp4' outpoint 300 file 'input3.mp4' outpoint 300 ... file 'inputn.mp4' outpoint 300 然后: ffmpeg -f concat -i "list.txt" -r 48 -vf "select=concatdec_select,scale=1280x720,setsar=1,setpts=0.125*PTS" -sws_flags lanczos -c:v libx264 -crf 23 -an "merged-720p.mp4" http://superuser.com/a/1020455/15252 我实验了,效果很好。 |
56
congeec 2016-01-05 22:58:11 +08:00
|
57
xuhaoyangx 2016-01-05 23:16:48 +08:00
@est megui 只是个 gui ,也是调用类似 ffmpeg X264 这些命令行的工具
|
58
xuhaoyangx 2016-01-05 23:17:56 +08:00
@est 外国友人的回答真详细
|