![使用 ffmpeg 将 1440x1080p 的 HDV 视频转换为 MP4 和 MKV](https://linux22.com/image/1625400/%E4%BD%BF%E7%94%A8%20ffmpeg%20%E5%B0%86%201440x1080p%20%E7%9A%84%20HDV%20%E8%A7%86%E9%A2%91%E8%BD%AC%E6%8D%A2%E4%B8%BA%20MP4%20%E5%92%8C%20MKV.png)
我需要一些帮助,我正在尝试将 1440x1080p 的 HDV 视频转换为 MP4 和 MKV
film.m2t 容器和一般信息
MPEG2-TS: 883Mib
1 视频流:MPEG-2 视频
1440x1080 (16/9),25.000 fps,MPEG-2 视频 (Main@high-1440)
1 音频流:MPEG-1 音频第 2 层
第一个音频流 384 Kbps、48 KHz、2 通道、MPEG-1 音频第 2 层
脚本:这是我首先尝试的
ffmpeg -y -i "D:\Video\Luke\Late 07 - Early-08\Clip 1\film.m2t" -vcodec msmpeg4 -vf yadif -b 12000k -acodec libmp3lame -ab 128k -ar 44100 Clip3_H.264_MP3_DIVX.avi
假设 ffmpeg 正在添加支柱:
ffmpeg -y -i "D:\Video\Luke\Late 07 - Early-08\Clip 1\film.m2t" -vcodec msmpeg4 -aspect 16:9 -vf "scale=1440:1080:force_original_aspect_ratio=increase,crop=1440:1080" -vf yadif -b 12000k -acodec libmp3lame -ab 128k -ar 44100 Clip3_H.264_MP3_DIVX.avi
ffmepg 输出
输入 #0,mpegts,来自“D:\Video\Luke\Late 07 - Early-08\Clip
1\film.m2t”:持续时间:00:04:27.60,开始:0.440000,比特率:26104
kb/s 程序 100
流 #0:0[0x810]:视频:mpeg2video (Main) (2[0][0][0] / 0x0002),
yuv420p(tv,bt709),1440x1080 [SAR 4:3 DAR 16:9],25000 kb/s,
25 fps,25 tbr,90k tbn,50 tbc
流 #0:1[0x814]: 音频:mp2 ([3][0][0][0] / 0x0003),48000 Hz,
立体声,s16p,384 kb/s
流 #0:2[0x815]: 未知:无 ([160][0][0][0] / 0x00A0)
流 #0:3[0x811]: 未知:无 ([161][0][0][0] / 0x00A1) 请使用
-b:a 或 -b:v,-b 为模棱两可 输出 #0,avi,到
‘Clip3_H.264_MP3_DIVX.avi’: 元数据:
ISFT:Lavf57.28.100
流 #0:0:视频:msmpeg4v3 (msmpeg4) (MP43 / 0x3334504D),yuv420p,
1440x1080 [SAR 4:3 DAR 16:9],q=2-31,12000 kb/s,25 fps,25
tbn,25 tbc
元数据:
编码器:Lavc57.27.101 msmpeg4
附加数据:
cpb:比特率最大/最小/平均:0/0/12000000 缓冲区大小:0 vbv_delay:-1
流 #0:1:音频:mp3 (libmp3lame) (U[0][0][0] / 0x0055),44100 Hz,
立体声,s16p,128 kb/s
元数据:
编码器:Lavc57.27.101 libmp3lame 流映射:流
#0:0 -> #0:0(mpeg2video(原生)-> msmpeg4v3(msmpeg4))
流 #0:1 -> #0:1(mp2(原生)-> mp3(libmp3lame))
附注:如果我将 film.m2t 转换为 film.m2ts,宽高比和无支柱,但不想在使用 ffmpeg 之前重新编码
ffmpeg 是否添加了支柱?如果我查看输出流,它会说
流 #0:0:视频:msmpeg4v3 (msmpeg4) (MP43 / 0x3334504D),yuv420p,1440x1080 [SAR 4:3 DAR 16:9],q=2-31,12000 kb/s,25 fps,25 tbn,25 tbc
与输入相匹配 –
流 #0:0[0x810]: 视频: mpeg2video (主) (2[0][0][0] / 0x0002),yuv420p(电视,bt709),1440x1080 [SAR 4:3 DAR 16:9],25000 kb/s,25 fps,25 tbr,90k tbn,50 tbc
当然,视频容器除外
使用以下方法转换为 mkv 时出现类似问题:
ffmpeg -y -i "D:\Video\Luke\Late 07 - Early-08\Clip 1\film.m2t" -f matroska -vf yadif -crf 25 -level 3.1 -preset slow -tune film -c:a libmp3lame -ab 128k -ar 44100 -vbr 5 Clip2_H.264_MP3.MKV
我认为我在转换时没有改变宽高比,也没有在脚本中改变视频帧大小,那么为什么编码后会出现黑条?我遗漏了什么吗?
我刚刚试过
ffmpeg -y -i "D:\Video\Luke\Late 07 - Early-08\Clip 1\film.m2t" -f matroska -vf yadif -crf 25 -level 3.1 -preset slow -tune film -c:a libmp3lame -ab 128k -ar 44100 -vbr 5 Clip2_H.264_MP3.MKV
vlc 现在显示分辨率为:1440x1080p,但仍然有柱子
谢谢戈登
答案1
要获取其中任何一个容器,只需ffmpeg -i infile out.mkv
或 ffmpeg -i infile out.mp4
。 不是out.avi
。 其他参数(分辨率、比特率、去隔行)对任何一个容器都没有影响。 根据需要将这些添加回去。