[1 楼] springbell
[资深泡菜]
22-4-24 12:35
昨天尝试用ffmpeg程序把一个ts格式的视频转换成mp4格式的,结果原本32.7GB的ts文件,转换后得到的mp4文件才16.8GB,感觉明显不对,是命令行参数没设置正确?命令行如下,我是不想改动任何编码信息的,只是想转换格式: ffmpeg -i sfg.ts sfg-1.mp4转换过程中有出错信息见图片:
|
[16 楼] Trompette
[泡菜]
22-4-24 20:56
gar2000 发表于 2022-4-24 19:59  试试mediacoder 免费版 视频 复制 音频 复制 mediacoder ※※上曾经进过 ffmpeg 的耻辱厅(hall of shame) 因为它在底层使用 ffmpeg,但又违反 GPL 协议(不公布更改后的源码,而且把最终产品拿来卖钱,还装作没使用过一样) 为了同行们的面子,ffmpeg 后来关闭了耻辱厅,并且提供了 LGPL 的版本(仍然不要钱) 允许商用闭源软件也链接到 ffmpeg 的运行库 如果商用闭源软件修改了 ffmpeg 的源码,所有修改的部分需要遵守 LGPL 协议的规定,主软件不受影响
|
[15 楼] gar2000
[老坛泡菜]
22-4-24 19:59
试试mediacoder 免费版 视频 复制 音频 复制
|
[14 楼] Trompette
[泡菜]
22-4-24 18:49
springbell 发表于 2022-4-24 17:35  请教一下,用了 ffmpeg -i sfg.ts -c copy sfg-1.mkv 命令,有出错提示,是下载的源文件有问题吗? ffmpeg 会自动探测CPU核心并且选择合适的线程。除非核心非常多的情况才会偏离最优的线程数。 中间warning,然后继续的大概率是源有问题,不过通常都可以忽略。 如果只要截取其中一段,用 -ss 开始秒数 -t 时长 就可以了 多媒体的转码分流切割只要有ffmpeg就可以,很多软件本质都是在ffmpeg上套了个图形界面。
|
[13 楼] 暗淡の月
[泡菜]
22-4-24 17:43
springbell 发表于 2022-4-24 17:37  我是看了网上一个帖子照做的。我的目的是从原视频中截取其中一段视频(一首歌),按那个帖子的说法,ts不能直接截取,要转换到mkv或mp4才能截取,于是我就尝试转换到mp4了。 无损截取ts,用tsMuxer就行,就像Mkvmerge GUI(或MKVToolNix)可无损截取mkv一样 本帖最后由 暗淡の月 于 2022-4-24 17:44 编辑
|
[12 楼] springbell
[资深泡菜]
22-4-24 17:37
等待 发表于 2022-4-24 17:32  HEVC是265的格式,压缩比要比264高,这转码损失大大地啊,还花了时间,划不来。 我是看了网上一个帖子照做的。我的目的是从原视频中截取其中一段视频(一首歌),按那个帖子的说法,ts不能直接截取,要转换到mkv或mp4才能截取,于是我就尝试转换到mp4了。
|
[11 楼] springbell
[资深泡菜]
22-4-24 17:35
Trompette 发表于 2022-4-24 16:29  不注明编码器为 copy (复制源码不变) 的话,ffmpeg 优先根据扩展名匹配默认编码器的默认设置
所以,理论上应该这样写
ffmpeg -i sfg.ts -c copy sfg-1.mp4
看到楼下兄弟提醒,mp4 封装不支持源码中的 DTS,所以没有办法全部复制源码
只能这样写(保留全部源码,只能封装成matroska):
ffmpeg -i sfg.ts -c copy sfg-1.mkv
或者这样写(保留视频源码,用aac重编音频,封装成mp4):
ffmpeg -i sfg.ts -c:v copy -c:a aac sfg-1.mp4 请教一下,用了 ffmpeg -i sfg.ts -c copy sfg-1.mkv 命令,有出错提示,是下载的源文件有问题吗?
|
[10 楼] 等待
[老坛泡菜]
22-4-24 17:32
springbell 发表于 2022-4-24 17:07  网上下载的视频文件,看文件名,应该是4K.UHDTV.HDR.HEVC格式。 HEVC是265的格式,压缩比要比264高,这转码损失大大地啊,还花了时间,划不来。
|
[9 楼] springbell
[资深泡菜]
22-4-24 17:08
Trompette 发表于 2022-4-24 16:29  不注明编码器为 copy (复制源码不变) 的话,ffmpeg 优先根据扩展名匹配默认编码器的默认设置
所以,理论上应该这样写
ffmpeg -i sfg.ts -c copy sfg-1.mp4
看到楼下兄弟提醒,mp4 封装不支持源码中的 DTS,所以没有办法全部复制源码
只能这样写(保留全部源码,只能封装成matroska):
ffmpeg -i sfg.ts -c copy sfg-1.mkv
或者这样写(保留视频源码,用aac重编音频,封装成mp4):
ffmpeg -i sfg.ts -c:v copy -c:a aac sfg-1.mp4 非常感谢,我去试试。 转换一次要近2小时,真废时间。还想请教:ffmpeg支持多线程吗?
|
[8 楼] springbell
[资深泡菜]
22-4-24 17:07
等待 发表于 2022-4-24 15:38  ts文件是啥压缩格式?印象中好像是MPEG-2。 mp4至少用到H.264。
这个压缩比例我觉得还不够理想,应该可以再小一点。 网上下载的视频文件,看文件名,应该是4K.UHDTV.HDR.HEVC格式。
|
[7 楼] springbell
[资深泡菜]
22-4-24 17:05
Bohnenkaffee 发表于 2022-4-24 15:30  可以试一下封装成mkv,mp4好像一般都要转码。不确定,不过印象中mp4都不是特别大,基本上都是硬字幕。
试试MKVToolNix,我曾经用来整理mkv,可以抽取视频及音轨,看看能不能封装成mp4。 谢谢
|
[6 楼] springbell
[资深泡菜]
22-4-24 17:05
暗淡の月 发表于 2022-4-24 15:04  楼主说"不想改动任何编码信息的,只是想转换格式",这句话我理解的意思是重新封装视频而不是重新编码视频,用Mkvmerge GUI重新封装为mkv,或者tsMuxer封装为m2ts就好了,这样相比原视频文件来说是无损的,就像ape转为flac那样. 但楼主的截图显示的是重编码了,编码参数为x264质量很低的默认参数(看截图末尾的i帧p帧avg qp值就可知,即使是10bit要减去10,i帧的23.15,p帧的26.15也太低得厉害了,按我个人的转码要求,别说i,p帧这么低,8bit下的b帧avg qp值低于24我都不愿意),编码方式为crf23,而mp4封装的视频不支持dts音轨,所以音频也被转码为394k的aac,错误提示即与此相关,不过只要播放时声音正常就可以忽略. 原来如此。我是刚刚接触视频转换,还是新手,谢谢了。
|
[5 楼] Trompette
[泡菜]
22-4-24 16:29
不注明编码器为 copy (复制源码不变) 的话,ffmpeg 优先根据扩展名匹配默认编码器的默认设置
所以,理论上应该这样写
ffmpeg -i sfg.ts -c copy sfg-1.mp4
看到楼下兄弟提醒,mp4 封装不支持源码中的 DTS,所以没有办法全部复制源码
只能这样写(保留全部源码,只能封装成matroska):
ffmpeg -i sfg.ts -c copy sfg-1.mkv
或者这样写(保留视频源码,用aac重编音频,封装成mp4):
ffmpeg -i sfg.ts -c:v copy -c:a aac sfg-1.mp4
本帖最后由 Trompette 于 2022-4-24 16:42 编辑 以下内容由 Trompette 于 2022-4-24 17:04 补充 纠误:试过 mp4 封装竟然可以支持 dts
|
[4 楼] 等待
[老坛泡菜]
22-4-24 15:38
ts文件是啥压缩格式?印象中好像是MPEG-2。 mp4至少用到H.264。
这个压缩比例我觉得还不够理想,应该可以再小一点。
|
[3 楼] Bohnenkaffee
[陈年泡菜]
22-4-24 15:30
可以试一下封装成mkv,mp4好像一般都要转码。不确定,不过印象中mp4都不是特别大,基本上都是硬字幕。
试试MKVToolNix,我曾经用来整理mkv,可以抽取视频及音轨,看看能不能封装成mp4。 本帖最后由 Bohnenkaffee 于 2022-4-24 15:38 编辑
|
[2 楼] 暗淡の月
[泡菜]
22-4-24 15:04
楼主说"不想改动任何编码信息的,只是想转换格式",这句话我理解的意思是重新封装视频而不是重新编码视频,用Mkvmerge GUI重新封装为mkv,或者tsMuxer封装为m2ts就好了,这样相比原视频文件来说是无损的,就像ape转为flac那样. 但楼主的截图显示的是重编码了,编码参数为x264质量很低的默认参数(看截图末尾的i帧p帧avg qp值就可知,即使是10bit要减去10,i帧的23.15,p帧的26.15也太低得厉害了,按我个人的转码要求,别说i,p帧这么低,8bit下的b帧avg qp值低于24我都不愿意),编码方式为crf23,而mp4封装的视频不支持dts音轨,所以音频也被转码为394k的aac,错误提示即与此相关,不过只要播放时声音正常就可以忽略.
|