如何使用ffmpeg将BDMV(m2ts)转换成MKV、MP4等其他格式的文件

这篇具有很好参考价值的文章主要介绍了如何使用ffmpeg将BDMV(m2ts)转换成MKV、MP4等其他格式的文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

BDMV 是蓝光碟使用的格式。这种格式没有办法使用播放软件播放,必须要用硬盘播放器,也就是专门的设备。但是最经典的 ffmpeg 可以将其转换成其他格式,并且保持相同的码率和清晰度,这样就可以很方便的查看了。

本文使用 macOS 进行演示,但是会介绍如何一些其他平台的方法和操作。

一般 BDMV 下载格式是一个 ISO,加载打开之后内容大致如下:

如何使用ffmpeg将BDMV(m2ts)转换成MKV、MP4等其他格式的文件

如果你使用的是终端,那么(如果你下下来的 ISO 加载后不叫“BDROM”,那么需要进行修改的):

## macOS
$ cd /Volumes/BDROM/

## Linux
$ cd /dev/BDROM/

## WSL
$ cd /mnt/BDROM/

## Windows(PowerShell)
$ cd BDROM:\

如果你看过 DVD 或者蓝光碟,会知道光盘播放的时候并不是插进去就直接开始播放了,而是会有选择界面,以及花絮、音效、广告等内容(不过零几年那时候我看盗版 DVD 有一些是直接开始播放了),如果是电视剧的话还会有每集的选择界面。所以这时候我们要找到电影的m2ts文件来进行转换,电视剧的话则会是多个m2ts文件。如果你需要花絮等内容还请按照后面的方法进行转换。

上图中的 BDMV 其实是一个包,右键选择“显示包内容”即可查看,如下:
如何使用ffmpeg将BDMV(m2ts)转换成MKV、MP4等其他格式的文件

如何使用ffmpeg将BDMV(m2ts)转换成MKV、MP4等其他格式的文件

然后进入“STREAM”文件夹。

上面的操作在终端中如下,不同平台都一样:

## macOS
## Linux
## WSL
## Windows(PowerShell)
$ cd BDMV/STREAM/

然后显示内容如下:

如何使用ffmpeg将BDMV(m2ts)转换成MKV、MP4等其他格式的文件

一般来说第一个就是我们需要的m2ts文件,看文件大小也能看出来。一般是00000.m2ts,不过也有可能是00001.m2ts,比如说上图。

这里需要强调一点,如果是 macOS 用户千万别直接空格检查这些文件,因为电影的m2ts如果直接查看是一段杂音视频,大晚上或者安静的时候很容易吓一跳。建议看文件大小即可。如下:

如何使用ffmpeg将BDMV(m2ts)转换成MKV、MP4等其他格式的文件

可以看到就第一个最大,占了大部分空间。

如果是电视剧的话会有多个差不多大的文件,那么最好使用ffprobe来看看这个文件:

Input #0, mpegts, from '/Volumes/BDROM/BDMV/STREAM/00001.m2ts':
  Duration: 01:59:09.15, start: 1.996000, bitrate: 42645 kb/s
  Program 1 
  Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn
  Stream #0:1[0x1100]: Audio: pcm_bluray (HDMV / 0x564D4448), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s
  Stream #0:2[0x1101]: Audio: dts (DTS-HD MA) ([134][0][0][0] / 0x0086), 48000 Hz, 5.1(side), s32p (24 bit)
  Stream #0:3[0x1102]: Audio: dts (DTS) ([130][0][0][0] / 0x0082), 48000 Hz, 5.1(side), fltp, 768 kb/s
  Stream #0:4[0x1103]: Audio: dts (DTS) ([130][0][0][0] / 0x0082), 48000 Hz, 5.1(side), fltp, 768 kb/s
  Stream #0:5[0x1104]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 448 kb/s
  Stream #0:6[0x1105]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 448 kb/s
  Stream #0:7[0x1106]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 448 kb/s
  Stream #0:8[0x1107]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 448 kb/s
  Stream #0:9[0x1108]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 448 kb/s
  Stream #0:10[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
  Stream #0:11[0x1201]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
  Stream #0:12[0x1202]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
  Stream #0:13[0x1203]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
  Stream #0:14[0x1204]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
  Stream #0:15[0x1205]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
  Stream #0:16[0x1206]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
  Stream #0:17[0x1207]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)

可以看到这个电影的时长、平均码率等信息,最重要的是包含的各种视频流、音频流、字幕文件信息。本文只需要知道音频文件是什么编码,然后进行选择,不然会导致初始化流的时候出现问题,从上面可以看到是flac格式(蓝光电影一般都是这个格式)。如果你想打包一个特定语言和字幕的成品,那么就需要使用这些信息了,本文就不做赘述了。

知道了位置在哪,就可以进行转换了。下面的命令还会包含源文件所有的音轨和字幕,并且在当前目录(并不是 ISO 中)生成一个output.mkv文件:

## macOS
$ ffmpeg -i /Volumes/BDROM/BDMV/STREAM/00001.m2ts -map 0 -c copy -c:a flac output.mkv

其他平台用户根据之前的介绍修改文件路径,用 Windows CMD 的用户还请自己手动将/变换成\,PowerShell 用户在最后按下 Tab 键可以自动转换(其实 PowerShell 不转也行)。此外,输出文件的路径也可以根据需要进行修改。

上面这条 ffmpeg 命令的选项含义是:

  • -i /Volumes/BDROM/BDMV/STREAM/00001.m2ts表示输入文件为/Volumes/BDROM/BDMV/STREAM/00001.m2ts
  • -map 0选中输入文件的所有流,如果你想选择所有的音频流,那么使用-map 0:a,如果要进行特殊设置和操作,那么请查看官方文档的介绍:Selecting streams with the -map option。
  • -c copy会拷贝原文件所有的信息,比如码率,这样就可以保证生成文件和源文件码率等信息相同了,也就是保证清晰度,但是这种操作可能会导致视频出现抽搐的情况。某些视频在 VLC 下播放正常,但是自带的播放器就抽搐,这种是因为编码器问题,修改一下编码器再次进行转码即可,但是这样就慢了很多,不过好在出现的情况不多。
  • -c:a flac表示音频编码器为flac,不设置这个选项会导致初始化流的时候出现问题。
  • output.mkv表示输出文件名为output,格式是 MKV。

输出格式推荐 MKV,因为 MKV 其实是一个视频容器格式,能包含多个媒体文件,比如字幕、音轨,并且在电脑上也能找到不少播放器。虽然 MP4 格式也可以存放多轨字幕和音频,但是很困难。这也是为什么你下转换好的蓝光文件大多也是 MKV 文件,MKV 主打的就是存储蓝光或者 DVD 的电影。

如果你需要 MP4 文件,我也不建议你直接转成 MP4,如果空间允许,先转成 MKV 再转成 MP4 也比较方便,MKV 转 MP4 的速度也非常快,基本上是 100x 往上了。不论是那种转换流程,如果要转换成 MP4 文件,那么建议选择好需要的软字幕和音轨,或者更简单一些,把上面命令中的-map 0删除即可,就可以将第一个音轨和软字幕带到 MP4 文件里。

虽然蓝光文件的码率很高,1080P 都有 40000-60000 kb/s(一般流媒体 1080P 是 5000-8000),如果是 4K 的话会更高,但是转换速度还挺快的,现在的 CPU 应该都能做到 5-30x,甚至更高的速度。并且利用率和内存占用不高,挂在后台转码也行。

希望能帮到有需要的人~文章来源地址https://www.toymoban.com/news/detail-498896.html

到了这里,关于如何使用ffmpeg将BDMV(m2ts)转换成MKV、MP4等其他格式的文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 视频格式转换(avi、wmv、flv、mkv、rmvb、rm、3gp转MP4、MP3)边学边开发

    最近想把视频中的音乐提取成mp3,找了好多软件,都不顺手,所以自己动手写了这么一个小软件。主要使用的是:ffmpeg.exe,转换时候带进度条,可以转换一个文件,也可以批量转换文件。 一、先看一下软件如何使用 软件共有三部分: 1、选择转换的文件,文件格式可以是a

    2024年02月16日
    浏览(39)
  • ffmpeg ts列表合并为mp4

    操作系统:ubuntu 注意事项: 1.ts文件顺序必须正确,也就是下一帧的dst和pst要比上一帧的大,否则会报错 2.codecpar-codec_tag要设置为0,否则报错Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1) 3.设置output的max_streams数目,默认是1000,超过此数目就会报错

    2024年02月13日
    浏览(40)
  • 基于FFmpeg的封装格式MP4(TS)

    每一帧音频或视频都有一个持续时间:duration: 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。 。正常人听觉的频率范围大约在20Hz~20kHz之间,根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8k

    2024年02月03日
    浏览(30)
  • 如何使用ffmpeg将MP4文件转化为YUV文件?

    可以使用以下命令将 MP4 文件转化为 YUV 文件: 其中, input.mp4 是输入文件的文件名, output.yuv 是输出文件的文件名。 需要注意的是,在使用这个命令之前,你需要在你的电脑上安装 ffmpeg。如果没有安装,可以使用以下命令安装: 如果你使用的是 Windows 系统,可以到 ffmpeg 官网

    2024年02月15日
    浏览(42)
  • ffmpeg批量转换mpg为mp4

    1、新建一个txt文件,并复制如下代码进入,然后保存。 2、把文件后缀修改为bat 。 3、把后缀为bat的文件放到要批量处理的视频文件夹里面。 4、在确保安装了ffmpeg的情况下,双击bat文件执行即可。 5、参数说明: -i          输入文件,这里指的就是视频文件。 -y       

    2024年02月13日
    浏览(31)
  • 不用FFMpeg,用Python代码解密ts文件还原mp4视频(前提:有正确的key)

    好不容易下载了.ts视频,但内容全被加密。要解密的前提条件是必须先有正确的key文件,然后对.ts文件进行AES-128解密,还原成.mp4视频。 以往的做法是用FFMpeg命令: 现在可以用Python代码直接解密。 非常感谢这篇文章给我参考的灵感: 流媒体m3u8爬虫研究 - Echocipher 首先Python要

    2024年02月02日
    浏览(36)
  • 轻松转换TS视频为MP4,实现优质视频剪辑体验

    如果你是一个视频剪辑爱好者,你一定会遇到各种视频格式之间的转换问题,特别是将TS视频转换为MP4格式。别担心,我们的视频剪辑软件将为你提供最简单、高效的解决方案! 首先第一步,我们要进入媒体梦工厂主页面,在板块栏里选择“智能转码”板块 第二步,在进入板

    2024年02月13日
    浏览(44)
  • python ffmpeg将mp4文件实时转码为ts,并指定pid等信息,输出到udp

    要将MP4文件实时转码为TS格式,并将PID等信息指定为UDP输出,可以使用 subprocess 模块和ffmpeg命令行工具来实现。以下是一个示例代码,用于实时转码并将输出发送到UDP服务器: 在上述代码中,我们首先定义了输入文件、UDP服务器地址和PID等信息。然后,我们使用 subprocess.Pop

    2024年01月22日
    浏览(37)
  • 【音视频开发】FFmpeg转换与封装 I - MP4格式

    1 FFmpeg转换与封装 1.1 MP4格式转换 1.1.1 MP4格式标准         FFmpeg支持的媒体封装格式具有多样性与全面性,与此, 我们还可以使用FFmpeg来对媒体格式进行转换与封装 。 在互联网常见的格式中,跨平台最好的应该是 MP4 文件,因为 MP4 文件既可以在PC 平台的Flashplayer中播放,

    2024年02月08日
    浏览(56)
  • Web_单一视频文件mp4转换为m3u分段ts文件实现边下边播

    Builds - CODEX FFMPEG @ gyan.dev 先解压缩,会看到如下结构: 进入bin目录, 把需要转换的视频文件复制过来 ,同时 新建一个文件夹 用来存放转换后的文件,然后按住Shift键同时单击鼠标右键,选择打开Powershell窗口: 输入以下命令(根据实际修改)后按Enter键: ffmpeg -i 源视频名字

    2024年02月10日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包