跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Mac OS 仅转格式,视频内容不变( 比如 MKV 转 mp4)的解决方法以及讨论。
未分類
2020 年 6 月 2 日

Mac OS 仅转格式,视频内容不变( 比如 MKV 转 mp4)的解决方法以及讨论。

Mac OS 仅转格式,视频内容不变( 比如 MKV 转 mp4)的解决方法以及讨论。

資深大佬 : WesleyNZ 1

我电脑里有一些 [ H264 视频编码,Vorbis 音频编码] 的 mkv 视频
我的目标是转换这个 MKV 格式到 mp4 格式,并且可以预览,且 [声音相对于原视频无损] 。

于是开始了折腾之路,在上一个帖子里 https://v2ex.com/t/676849#reply64
根据 v 友遇见我尝试了如下方法:

1.直接用 ffmpeg(brew 安装,终端命令执行,无可视化界面)转换视频,可以做到只更换容器,将 mkv 转化成 mp4.
但是用这种方法 [原视频因为用 vorbis 编码的音频] 导致 预览 Preview 的 mp4 文件没有声音,但是打开以后可以正常播放。
如果想实现我的目标,参数设置太复杂–划重点 因为对于每个文件 我都不知道应该怎么设置 aac 的码率,因为各个文件都不一样 你总不能都设置成最高的,这样我还要分别去测试,很麻烦。 我搜了很久也找不到办法,就算找到了 也没有批处理的办法,必须一个一个转换 所以这条路 走不通。
Mac OS 仅转格式,视频内容不变( 比如 MKV 转 mp4)的解决方法以及讨论。

2. Handbrake 是完全不支持 [仅更换容器] 的,它的每一次执行都进行了转码,这在官方文件里有。在上述帖子里有写 这条路行不通。

3.有人推荐了 Videoproc,正好在搞活动,6 刀买入序列号。
结果 坑爹的事情来了,图片解释一切,我简单说下:
Videoproc 支持 [视频直接转换容器,不进行重新编码] ,然而对于 [ vorbis 音频编码部分] ,可以转化为 AAC 但是最高音质是 160kpbs,但是我的源文件音频的码率是 1061kbps,损失太大了 无法接受

https://v2ex.com/i/0Ig7mLYG.png

另外要序列号的留言 这软件对我来说没用了。

4.最后是 mp4tools,使用了以后,用花了 10 刀买入了
可以实现 [视频直接转换容器,不进行重新编码] , 而 [ vorbis 音频编码部分] 转换为 aac 文件,码率可以自选,最高可以 640kbps, 并且在我选择 640kbps 以后,如果源文件音频信息没有 640kbps 那么大 他会自动选择最高的音质,完美解决我的问题。

https://v2ex.com/i/3Q7L36rK.jpeg

另外谁能告诉我为什么帖子另外两张图片无法插入??

大佬有話說 (31)

  • 主 資深大佬 : WesleyNZ

    3.有人推荐了 Videoproc,正好在搞活动,6 刀买入序列号。
    结果 坑爹的事情来了,图片解释一切,我简单说下:
    Videoproc 支持 [视频直接转换容器,不进行重新编码] ,然而对于 [ vorbis 音频编码部分] ,可以转化为 AAC 但是最高音质是 160kpbs,但是我的源文件音频的码率是 1061kbps,损失太大了 无法接受
    https://v2ex.com/i/0Ig7mLYG.png

    另外要序列号的留言 这软件对我来说没用了。

  • 資深大佬 : kokutou

    我能想到一个办法。。。
    写个脚本先用 ffmpeg 获取音频码率,再判断下,然后再 ffmpeg -c:v copy -c:a aac 就行了。。
    或者更简单粗暴的,ffmpeg 转出来 acc 音频轨放第一轨道,原始 vorbis 放第二轨道。。

  • 主 資深大佬 : WesleyNZ

    @kokutou 第二个如何实现呢?而且问题是我 1061 帧率的那个文件 真实肯定没那么高。写脚本,每个文件判断 手动再执行,我做不到。

  • 主 資深大佬 : WesleyNZ

    @kokutou 而且 Vorbis 音频比如说 400Kbps 你怎么知道转换出来的 aac 也是呢? aac 本身就是有损压缩,我怎么知道多少码率是相对源文件无损呢?

  • 資深大佬 : xiaket

    多熟悉一下命令行吧, 这真不是什么复杂的需求.

  • 資深大佬 : yuzo555

    libfdk_aac 支持 vbr,效果我没试过,理论上应该能按质量出音频(不过 libfdk_aac 有一些使用限制,最好看清楚 LICENSE 再使用)。
    ffmpeg 自带的 aac 也支持质量模式 -q:a 不过效果应该是没有 libfdk_aac 好。

  • 資深大佬 : yzwduck

    主是否正确判读了源音频的规格?
    根据 vorbis (Xiph) 官方编码器的设定,最高质量 q10 的码率是 500kbit/s,但 OP 说源文件音频的码率是 1061 kbps,是不是在哪个地方搞错了?

  • 資深大佬 : locoz

    试试 obs 自带的那个小工具

  • 資深大佬 : gggxxxx

    主思路不明确啊,既然想保持原样为什么要去转它呢。
    目标是播放的话,直接装 vlc 什么都解决了。
    一定要转的话,mp4 格式有要求和限制的,Vorbis 转 aac 是对的。

  • 資深大佬 : yzwduck

    @WesleyNZ #4 很难确定两个不同算法的有损压缩之间转换,会损失多少信息。
    题外话,44.1/48 kHz 16 bit 的音频,在有损压缩码率 240 kbps 以上时,就很难听出它与原始音频的差异了,更何况主用的是 24 kHz 的音频。如果真的在意这部分的差异的话,就应该全程使用无损压缩算法。

  • 資深大佬 : KevinM

    Vorbis 跟 AAC 都是 lossy compression,因此你的要求不可能成立。
    @yzwduck 指出的也很對,Vorbis 的 nominal bitrate 最高到 q10 也只有 500Kbps,儘管可能是 variable bitrate 報告了最大值,但你原來的音頻可能有些非標準做法。
    建議直接最高質量轉 AAC 就行了,你聽不出區別的,實在要追求「無損」,照 @kokutou 存兩條音軌就行了,AAC 做默認(第一),Preview 應該就能預覽了。

  • 資深大佬 : starrystarry

    ffmpeg -i input.mkv -c:v copy -c:a alac_at -tag:v avc1 output.mov
    注意是 .mov 不是 .mp4 (都能预览),-tag:v avc1 也是必须的。

  • 資深大佬 : starrystarry

    MP4 容器能接受的无损音频格式只有 ALAC,Preview.app 能播放的无损音频格式也只有 ALAC 。AAC 是有损压缩,无论你设置多少码率都是有损。Vorbis 的 600Kbps 一定是大于 AAC 的 6000000000000Kbps 音质

  • 主 資深大佬 : WesleyNZ

    @KevinM 如何保留两条音轨?同时如何设置默认音轨?

  • 主 資深大佬 : WesleyNZ

    @starrystarry 后面这个道理我懂

  • 主 資深大佬 : WesleyNZ

    @yzwduck 你看一下我贴出来的图片里链接 里面告诉你码率了。

  • 資深大佬 : yzwduck

    @WesleyNZ 你的第一张截图里只能看出 Input #0 的码率是 1102 kb/s,但是实际的音频需要看 Stream #0:1 和 Stream #0:2 的码率。

  • 資深大佬 : chenpei466

    permute

  • 主 資深大佬 : WesleyNZ

    @chenpei466 这个软件 完全没法用的。。

  • 主 資深大佬 : WesleyNZ

    @yzwduck 我有软件的 log,等我截个图给你看。

  • 主 資深大佬 : WesleyNZ

    @yzwduck 这是那个 1061 的码率转换设置,你帮我分析一下是不是已经 [音频转码从 vorbis 到 aac,已经有足够码率了]
    求帮我解释一下这个图大概有什么意思,谢谢。
    https://v2ex.com/i/2dibX90K.jpeg

  • 主 資深大佬 : WesleyNZ

    @yzwduck https://v2ex.com/i/Mk841069.png 不好意思 图片在这里,麻烦帮我看一下,然后 too many bits– clamping to max 是指的,重新编码的 aac 是已经取了最高的采样标准?

  • 資深大佬 : yzwduck

    没有。
    如果主看了日志都没注意到音频在编码时被重采样了的话,只能麻烦主先自行学习一下数字音频和流媒体的基本概念,再和其他人继续讨论了。

    [声音相对原视频无损] 的两种简单做法,1 )使用无损压缩算法来二次编码,2 )复制原有音频流。如果想用有损压缩二次编码的话,算一下 hash 看有没有信息损失,或者算一下 SNR 看损失了多少。

    EOF

  • 主 資深大佬 : WesleyNZ

    @yzwduck 我知道重新采样了 我想知道最终的损失是多少?

  • 資深大佬 : hronro

    为啥不用开源的 MP4Box 呢?比 ffmpeg 简单好用

  • 主 資深大佬 : WesleyNZ

    @hronro 我昨天急着用 请问你说的这个软件是图形界面吗?

  • 資深大佬 : QingStone

    小丸工具箱,试试?

  • 資深大佬 : pperlee

    不要贪图图形界面。

  • 資深大佬 : hronro

    @WesleyNZ #26 不是

  • 資深大佬 : yangxin0

    不就是 remux

  • 主 資深大佬 : WesleyNZ

    @pperlee 嗯嗯 谢谢建议

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具