1
acoldfox 2021-06-23 18:16:43 +08:00
Permute
|
2
lancelock 2021-06-23 18:20:59 +08:00
小丸工具箱这些工具也都是对 ffmpeg 的封装而已,怎么会不满足需求呢
|
3
wangkun025 2021-06-23 18:27:21 +08:00
花 200 块钱悬赏个 ffmpeg 的脚本,哈哈。
利益无关。我不会写 ffmpeg 脚本。 |
4
LoneFireBlossom OP @acoldfox
这个我为了满足「视频分辨率保持不变」,所以预设的视频清晰度选择的是「复制」。有的时候两秒就完成任务了(我不懂视频编码不知道是什么情况),然后视频播放也顺畅了也能在相册里直接播放了;但有的时候不行,处理完之后还是不能在相册里播放。所以就没法用…… |
5
LoneFireBlossom OP @lancelock 我不懂代码,只是看了一下 ffpmeg 好像不能实现「分别各自保存到各自的原目录」,或者说很麻烦吧?
比如一套教程分 10 章,每章一个文件夹,每个文件夹下几个视频,那光是往脚本里粘贴目录感觉就挺麻烦的= = 实现想来应该是能实现的,但我这种人肯定搞不定…… |
6
LoneFireBlossom OP PS:保持原分辨率不变是因为,如果统一分辨率,那么,
设置统一 720p,那么 1080p 视频变成 720p 清晰度确实变差了; 设置统一 1080p,那么 720p 视频变成 1080p,实际上观感没怎么提升,但体积却会大不少。 |
7
neteroster 2021-06-23 18:42:31 +08:00
@LoneFireBlossom 分别保存到原目录不是 ffpmeg 的工作啊。写个脚本这个需求很简单就实现了。
|
8
neteroster 2021-06-23 18:42:55 +08:00
@neteroster *ffmpeg
|
9
LoneFireBlossom OP @neteroster 😂我也希望我会写脚本
顺带 写脚本怎么入门……(感觉和主题无关了 等我学完几个月过去了 |
10
shpkng 2021-06-23 18:48:58 +08:00
还是用 ffmpeg 好,用那个 python 的 binding 就很简单了
|
11
supermoonie 2021-06-23 18:49:18 +08:00 via iPhone 1
可以提具体的需求给我,免费帮你做一个
|
12
lancelock 2021-06-23 18:57:48 +08:00
ffmpeg 简单的用就是命令行工具,设置下参数就行,不用跑啥脚本。复杂点需求说实话自己写一个得了,mac 上我确实没见过什么好用的工具
|
13
lancelock 2021-06-23 18:59:00 +08:00
@LoneFireBlossom 复制就是换封装,没有重新编码,简单来说就是换个壳,当然快了
|
14
ck65 2021-06-23 18:59:36 +08:00 3
HandBrake https://handbrake.fr
|
15
shyling 2021-06-23 19:08:27 +08:00
compress
|
16
thx2u 2021-06-23 19:26:03 +08:00 via iPhone
handbreak
|
17
weak 2021-06-23 19:30:03 +08:00 via iPhone
专业做视频的告诉你 Adobe media encode 好用
|
18
LoneFireBlossom OP @supermoonie 谢谢,我的需求如主楼所说,再详细一下的话就是,
第一,每当我发现好的视频教程就会把它下载下来看。所以,不知视频转码用的脚本能不能实现「改一下输入输出目录的地址就能用」?能的话就太好了,不能的话脚本只能用一次感觉就没多大意义。 第二,将各种可能的视频编码转码成 iOS 相册能直接播放的那种: 1. 源文件基本上是从网上下载的教程类视频,所以想必编码不会很奇怪。至少应该没有 10bit 之类的吧,别的我都不懂了。 2. 生成文件的编码,相册能直接播放的我只知道 x264 和 x265 正常的都能播放,更详细的设置不懂,大概设置的很正常就能播放吧。 第三,批量转码后各自的分辨率保持不变,比如队列里输入两个视频,一个是 1280*800 那么输出就是 1280*800,另一个是 1920*1200 那么输出就是 1920*1200 。 第四,生成的文件后缀名是 mp4,文件名都是各自源文件的名字后面加“_batch”。 第四,批量转码后的视频,分别各自保存到各自源文件所在的目录。 第五,如果能利用独显当然更好,我用的是 AMD Radeon Pro 5600M 。(我下午搜的时候看到说 Catalina 上一个独显的语句有效,但是 Big Sur 上就无效了……也是醉 我还想升级 Monterey 呢) 提了一大堆要求(应该说全了),我不知道这能不能用脚本实现 😂 |
19
zqhong 2021-06-23 20:38:29 +08:00 3
最近用过 ffmpeg,说下我的想法。
考虑到兼容性,建议视频编码用 H.264 ,音频编码用 AAC 。 (参考网上的资料,非专业,欢迎指正) ffmpeg macOS 二进制版下载: https://evermeet.cx/ffmpeg/ 相关脚本: https://gist.github.com/zqhong/fe8f55bf85e18263306cd1379980c0a8 (本地测试过,但不熟悉 Linux,欢迎指正) 脚本使用: bash -x find-exec-ffmpeg.sh ffmpeg 的资料可以看这里: 参考视频: https://www.bilibili.com/video/av40146374 官方文档: http://ffmpeg.org/ffmpeg-all.html |
20
LoneFireBlossom OP @lancelock 感觉我这其实也不算什么复杂的需求= =
保持原分辨率不变应该很正常,但是 handbrake 我就没找到这个选项,真是服,源文件是 1920*1200 的它就改成 1920*1080,别的再比如 4096*2304,我总不能每个视频都调一遍分辨率设置…… permute 是「视频清晰度」的选项中有低 /中 /高 /极高 /复制等几个选项。从选项的名称来看应该是说分辨率的,所以照我的理解,「复制」的意思就是“源文件分辨率是多少,生成的就是多少”。 但其实不是,实际的情况肯定如你所说。我以前只知道不同后缀名的视频换封装,比如 mkv 换到 mp4,但这视频是我从网易云课堂下载的,本来后缀名就是 mp4 (也就是说并非是我手动修改了后缀名),然后这都能换封装成另一个 mp4,也是神奇,不懂。 |
21
steveshi 2021-06-23 20:44:10 +08:00
ffwork
|
22
LoneFireBlossom OP |
23
LoneFireBlossom OP @shyling 我搜了一下,你说的是苹果自家的 Compressor 吗?
|
24
Tink 2021-06-23 20:47:08 +08:00 via Android 1
permute
|
25
LoneFireBlossom OP @weak 谢谢,试了一下不行,导入文件说格式不支持(大意如此)。
|
26
Gawain 2021-06-23 21:37:42 +08:00
Permute+1
直接选转为 MP4 就好,测试一下,1080P 和 4k 一起转换,分辨率未改变。 另外,小丸工具可以继续使用 需要用到 CrossOver 封装转换 mp4 提取视频音频 都可以 但是第一页“视频” 不知道为什么提示 unknow input 基本没用过小丸工具箱的压制功能,不太清楚到底什么原因 https://imgur.com/OlpbRBP.jpg |
27
zqhong 2021-06-23 22:22:23 +08:00
|
28
wydinhk 2021-06-23 23:03:49 +08:00
@LoneFireBlossom 用 handbrake 想要分辨率不变很简单,就是把 Resolution Limit 设置成最高 8K,这样就不会出现 1920*1200 因为限制 1080p 而被「降采样」的情况。你可以按自己的需求做一个 Preset 并设置成默认,这样每次打开就不用再调了。
关于其他参数对画质、输出文件大小、压制时间的影响,这篇文档有详细的比较说明: https://handbrake.fr/docs/en/1.3.0/technical/performance.html 如果不在意较高的输出码率,有时 macOS 自带的视频硬件编码是不错的选择,只要你下载的视频是标准的 h264 、h265 编码,在搭载 T2 芯片或 M1 Mac 上都能直接调用硬件编码器,不会狂吃 CPU 和发热。方法是右击视频-服务-编码所选视频文件,没有进度提示。不过对于 avi 、wmv 这种老格式无效。 |
29
LoneFireBlossom OP @Gawain 谢谢,能否分享一下 permute 的设置方法?
我现在是用 parallels 使用小丸工具箱,如主楼所说,主要是嫌慢。用 handbrake 的时候 CPU 占用率能到 90%( GPU 占用率好像是 20%多一点),用小丸工具箱和 permute CPU 占用率也就 30%多。 |
30
LoneFireBlossom OP @wydinhk 谢谢!
我明天试试 handbrake 。 另外问一下 handbrake 对于前述的需求 3,「批量转码后的视频,分别各自保存到各自的原目录」有方法么😂 刚才试了 Mac 自带的,有的视频可以,有的视频不行告诉我 avconvert: unable to read file:///Users/lonefireblossom/Downloads/XXXXX.mp4 。我也不知道什么是标准的 x264,只知道这是网易云课堂上下载的视频。用 mediainfo 看了一下是这样的: 编码函数库 : x264 core 150 编码设置 : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=8 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=2500 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00 |
31
LoneFireBlossom OP @steveshi 谢谢,我晚上在尝试,结果 homebrew 安装不上……还在研究安装中。回到宿舍想了一下可能是是插上有线网就终端连不上 GitHub 了( chrome 是可以的)。明天我再去实验室试试
|
32
wydinhk 2021-06-24 00:17:30 +08:00
@LoneFireBlossom 保存到原目录,没在 handbrake 里发现过,不过如果你非常需要批量转,或许 permute 确实更合适一点。
上面写系统自带编码流程,忘了强调只是适合「部分」视频,具体什么原因也没研究过。不过 handbrake 是可以选择调用 videotoolbox 的,也就是苹果的硬件编码 api,但会吃一定的 CPU 。 |
33
chonger 2021-06-24 01:16:07 +08:00
VideoProc 啊,支持硬件加速,装黑苹果的没不认识的,就用它来测显卡支不支持硬件加速
|
34
X-Force 2021-06-24 02:00:42 +08:00
HandBrake - 开源免费视频压缩 /万能格式转换工具神器 (跨平台转码软件)
https://www.iplaysoft.com/handbrake.html |
35
xuegy 2021-06-24 05:20:36 +08:00 via iPhone
首先 IINA 播放卡顿就离谱
|
36
explore365 2021-06-24 06:30:08 +08:00
ffmpeg
|
38
he110comex 2021-06-24 09:09:36 +08:00 1
我用的「土法炼钢」:
上传到 YouTube 自己的频道(设为私有)。 YouTube 会帮你转码( 4K 以下为.mp4 格式),转好之后下载回来就行了。 |
39
supermoonie 2021-06-24 09:32:30 +08:00 via iPhone
@LoneFireBlossom 留一下联系方式,做得好你就用,做不好我就当积累经验了🌚
|
40
Enlightener 2021-06-24 09:35:44 +08:00 via iPhone
影视民工表示用 Adobe ME 就对了,不嫌麻烦达芬奇 17 也可以呀,或者 compress,都可以。专业软件虽然麻烦点,但是可选择空间肯定比便捷的一键式程序大的多。
|
41
BeliefanX 2021-06-24 11:04:29 +08:00
Permute
|
42
kungfuchicken 2021-06-24 11:18:42 +08:00
https://apps.apple.com/cn/app/id1549345048
楼主试试这个播放器看看? |
43
wangyzj 2021-06-24 11:24:45 +08:00
Wondershare Video Converter
Total Video Converter 都可以 |
44
minipupil 2021-06-24 11:39:28 +08:00
FFmpeg
|
45
PaperWing 2021-06-24 12:19:24 +08:00 via iPhone
可以试下 VideoProc,经常限免。比 handbrake 强点,有一个视频 handbrake 老是转码失败,用 VideoProc 就能转成
|
46
Lemeng 2021-06-24 12:27:25 +08:00
用过 FF,以前在工作机上
|
47
pperlee 2021-06-24 14:03:47 +08:00
我试过用 iina 播放自己制作的 4k 视频卡顿,然后设置改成软解就不卡了。
app store 里面有个 total video converter pro,限免的时候下载了,适合小白转码。 如果没有拿到限免,前面有人提到的 handbrake 也是可以的,就是设置没有那么小白,默认 preset 不多。 adobe media encoder 也是可以的,默认设置也不少。 |
48
pperlee 2021-06-24 14:06:45 +08:00
哦,看了你的后续回答,用 adobe media encoder 吧:
1.可以视频导出在原目录,设置保存在原视频旁即可。 2.可以按原大小输出视频,也是视频导出设置里面可以定义(默认定义)。 |
49
MaverickLee 2021-06-24 14:13:25 +08:00
Adobe 的 AME
|
50
leeolsen 2021-06-24 14:26:22 +08:00
达芬奇 正版 免费
要啥有啥 |
52
aero99 2021-06-24 15:35:40 +08:00
fcpx 的伴侣视频转码 compressor 啊
|
53
LoneFireBlossom OP @chonger @PaperWing
感谢,试了一下,VideoProc 测试能开启硬件加速,但是实际转换的时候并没有硬件加速。 而且它也没有「批量转码后的视频,分别各自保存到各自的原目录」的功能(或者我没找到)。 既然这样那我感觉它就不如 handbrake 了。 @X-Force 感谢,主楼已经说过了。目前感觉如果找不到好用的就先用这个。 @kungfuchicken 感谢,我想不是播放器的问题,因为我在 parallels win10 虚拟机里用 potplayer 播放该视频也会卡。iina 是调进度后要等好几秒才开始播放; potplayer 是调进度之后只有音频还在播,画面暂停了,过几秒画面的进度才追上来。 @wangyzj 感谢,Wondershare Video Converter 引用一下我在某网站看到的评论,“而这个会损失画质而且还有可能产生横纹”。我就不自己尝试了…… Total Video Converter,这个界面也太古老了(另外竟然 cmd+,不能打开偏好设置,这是得多么上古的软件)。它也没有「批量转码后的视频,分别各自保存到各自的原目录」的功能。既然这样那我感觉它就不如 handbrake 了。 @Enlightener @MaverickLee @pperlee 感谢,如 #25 所说,导入有的视频,软件告诉我格式不支持。 |
54
LoneFireBlossom OP @Enlightener @aero99
compress 应该就是指 compressor 吧,好像就是 final cut pro x 内置的功能? 我在 #23 的时候尝试过,下载了一个 PCPX 测试版。和 adobe media encoder 一样,导入有的视频,软件告诉我格式不支持。 |
55
LoneFireBlossom OP 另外我还发现一个 Movavi Video Converter 2021 。
从某网站里复制的评论:这款软件是 Movavi 公司买的最好的,怎么好像中国人很少知道,试过无数款转码压制软件,在 Mac 上只有 Movavi Video Converter 和 HandBrake 最好,Movavi 速度快 画质损不明显 操作简单 上手快,HandBrake 速度慢一点但画质损失更少,但是目前没有汉化设置项比较多,上手难一点。其它的画质损失明显,容易出现横纹(应该是没有反交错功能),速度还慢,没有什么可取之处。 我尝试了一下, 满足要求 1,2 。 但是在帧率方面不能默认设定为峰值帧率,导致每一项视频都得手动更改设置。 (如果使用固定帧率,生成的视频体积会变大很多) 所以还是不用了。 |
56
littlewing 2021-06-24 15:57:46 +08:00
ffmpeg + shell or py
|
57
imsoso 2021-06-24 16:03:37 +08:00
支持国内万兴的产品啊,人家做这个起家的
|
58
LoneFireBlossom OP @imsoso #57 这个在国外叫 Wondershare Video Converter,我在 #53 下载过,然后见到有人说“而这个会损失画质而且还有可能产生横纹”。我就不自己尝试了……
|
59
psklf 2021-06-24 17:07:11 +08:00
当然是 ffmpeg
|
60
webgeekman 2021-06-24 17:33:51 +08:00
强烈推荐 Handbreak !!!
|
61
yulgang 2021-06-24 17:35:58 +08:00
没整过,我这有个将视频转成 mp3,并将音量增强的脚本,或许你以后会用到吧 。
pv source.avi | ffmpeg -i pipe:0 -v warning -q:a 0 -map a -filter: "volume = 20dB" -y filename.mp3 |
62
LoneFireBlossom OP |
63
LoneFireBlossom OP @zqhong #27 谢谢,搞明白之后试了一下发现比之前的 mp4 还大了,而且还不清晰😂
|
64
Enlightener 2021-06-24 19:16:57 +08:00 via iPhone
要具体问题具体分析,网易云课堂下载的是什么格式啊? 一般主流编码这几个软件都可以转码
|
65
zqhong 2021-06-24 19:23:29 +08:00
|
66
Shiweizhi 2021-06-24 22:14:35 +08:00 2
find ./ -type f -name "*.m4v" -exec ffmpeg -i "{}" -c:v h264_videotoolbox -b:v 8000k "{}.converted.mp4" \;
|
67
Enlightener 2021-06-25 00:35:03 +08:00
@LoneFireBlossom 对的,我拼写错了。他和 FCPX 用的是同一套解编码器,只不过单独分出来了一个 app 而已。就像 adobe 的 PR 和 Adobe Media Encoder 的关系差不多。
我想知道你哪些格式无法导入啊,我以前也遇到这种问题,只是编码不支持而已,这个还挺常见的。这种格式如果是有官网的话一般官网都会有编解码器,手动把它注入系统文件或者相应软件的对应目录就好了。 举个例子,比如用 RED 系列的电影摄影机拍摄的素材,格式为 R3D 的 red 公司特有格式,adobe 全家桶就不支持这种格式,我们只要去 red 官网上下载解码器,放到 Adobe 对应的程序目录里就可以正常导入、编辑素材了。 作为影视从业人员我个人还是非常建议用这些专业的视频编辑行业大厂的软件。一是稳定,一是可选择的空间大,音视频的码流、格式、编辑方式都是可以自定义的,捎带手还可以套个 luts 啥的。 |
68
vokins 2021-06-25 02:01:28 +08:00 via iPhone
用免费的达芬奇足以满足你的要求了
|
69
LoneFireBlossom OP @Enlightener #67 😂FCPX 我已经卸载了,不确定是哪个视频了。应该是我在 #30 提到的那个视频,信息见该楼
|
70
LoneFireBlossom OP |
71
zqhong 2021-06-25 11:11:30 +08:00
#70
下载了你提供的视频文件,该视频文件用了 Matroska 的封装格式( Container format ),兼容性比较差,换成 MP4 好一些。 这是 ffprobe 的结果: Input #0, matroska,webm, from 'v1.mkv': Metadata: encoder : libebml v1.3.4 + libmatroska v1.4.5 creation_time : 2021-05-08T04:16:31.000000Z Duration: 00:05:33.62, start: 0.000000, bitrate: 319 kb/s Stream #0:0(eng): Video: h264 (Main), yuv420p(progressive), 2304x1440 [SAR 1:1 DAR 8:5], 30 fps, 30 tbr, 1k tbn, 60 tbc (default) Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp (default) 参考: https://zh.wikipedia.org/wiki/Matroska https://en.wikipedia.org/wiki/Comparison_of_video_container_formats @LoneFireBlossom |
72
zqhong 2021-06-25 11:43:07 +08:00
#70
关于压缩问题,因为我电脑性能比较差,只截取了前 60 秒,文件名为 60sec.mkv 。 这是本地的测试结果: 2.4M Jun 25 11:14 60sec.mkv 2.3M Jun 25 11:23 crf-default.mp4 2.7M Jun 25 11:17 crf17.mp4 2.5M Jun 25 11:18 crf20.mp4 2.3M Jun 25 11:19 crf23.mp4 我认为:保持 crf 默认值( 23 )即可,没太大区别。 --- 关于清晰度问题: crf 17 ~ 18 这个范围,接近无损。默认值为 23,我肉眼看不出来。 参考: https://trac.ffmpeg.org/wiki/Encode/H.264 |
73
zqhong 2021-06-25 11:48:47 +08:00
|
74
alohathomas 2021-06-25 16:56:20 +08:00
compress
|
75
dxppp 2022-06-20 17:52:53 +08:00 via Android
ffmpeg -i input.mp4 -c:v hevc_videotoolbox -crf 20 -preset slow -c:a libfdk_aac -tag:v hvc1 output.mp4
https://gloomy-ghost.gitbook.io/convert-videos-with-ffmpeg-zh/ |
76
hsulin 222 天前
保持原视频质量不变的转码软件,这个我也问过( https://www.v2ex.com/t/931380 ),找到了一个傻瓜的解决方案,App Store 里的 Focus Video ,一个国人的软件,可以选择保留原视频的质量转换格式:
|
77
hsulin 222 天前
而且这个软件也可以选择 Same as Source Folder ,不过会在里面生成一个新文件夹,把转换好的视频放在里面,以区别于原视频
|
78
Aixtuz 138 天前
我是这样用的:
Automator - Quick Action - Run Shell Script ``` PATH=$PATH:/usr/local/bin/; for v in "$@" do ffmpeg -i "$v" -c:a aac -c:v libx264 -r 30 -crf 23 "$v".mp4 done ``` 保存名称 批量选择视频 - 右键 - Quick Action - 选中名称执行 |