freesilent
帖子: 35
注册时间: 2012-02-03 14:01

[求助]mp4封装音视频不同步的问题

录的ts,音视频同步,信息如下
概要
ID/String : 32391 (0x7E87)
CompleteName : F:\ニセコイ(MX)#1.ts
Format : MPEG-TS
FileSize/String : 2.82 GiB
Duration/String : 30分 9秒
Duration_Start : UTC 2014-01-11 23:29:46
Duration_End : UTC 2014-01-11 23:59:51
OverallBitRate_Mode/String : VBR
OverallBitRate/String : 13.4 Mbps
NetworkName : El5~~?

视频 #1
ID/String : 273 (0x111)
MenuID/String : 23608 (0x5C38) / 23609 (0x5C39)
Format : MPEG Video
Format_Version : Version 2
Format_Profile : Main@High
Format_Settings_BVOP/String : 是
Format_Settings_Matrix/String : 自定义
Format_Settings_GOP : M=3, N=15
CodecID : 2
Duration/String : 30分 9秒
BitRate_Mode/String : VBR
BitRate_Maximum/String : 20.0 Mbps
Width/String : 1 440像素
Height/String : 1 080像素
DisplayAspectRatio/String : 16:9
FrameRate/String : 29.970 fps
ColorSpace : YUV
ChromaSubsampling : 4:2:0
BitDepth/String : 8位
ScanType/String : 隔行扫描
ScanOrder/String : 奇数场(前场TFF)优先
Compression_Mode/String : 有损压缩
TimeCode_FirstFrame : 19:46:01:15
TimeCode_Source : Group of pictures header
colour_primaries : BT.709
transfer_characteristics : BT.709
matrix_coefficients : BT.709

视频 #2
ID/String : 641 (0x281)
MenuID/String : 23992 (0x5DB8) / 23993 (0x5DB9)
Format : AVC
Format/Info : Advanced Video Codec
Format_Profile : Baseline@L1.2
Format_Settings_CABAC/String : 否
Format_Settings_RefFrames/String : 3 frames
CodecID : 27
Duration/String : 30分 9秒
BitRate_Mode/String : CBR
BitRate_Nominal/String : 200 Kbps
Width/String : 320像素
Height/String : 180像素
DisplayAspectRatio/String : 16:9
FrameRate_Mode/String : 可变
ColorSpace : YUV
ChromaSubsampling : 4:2:0
BitDepth/String : 8位
ScanType/String : 逐行扫描

音频 #1
ID/String : 274 (0x112)
MenuID/String : 23608 (0x5C38) / 23609 (0x5C39)
Format : AAC
Format/Info : Advanced Audio Codec
Format_Version : Version 2
Format_Profile : LC
MuxingMode : ADTS
CodecID : 15
Duration/String : 30分 9秒
BitRate_Mode/String : VBR
BitRate/String : 250 Kbps
Channel(s)/String : 2声道
ChannelPositions : Front: L R
SamplingRate/String : 48.0 KHz
Compression_Mode/String : 有损压缩
Video_Delay/String : -342ms
StreamSize/String : 54.0 MiB (2%)

音频 #2
ID/String : 643 (0x283)
MenuID/String : 23992 (0x5DB8) / 23993 (0x5DB9)
Format : AAC
Format/Info : Advanced Audio Codec
Format_Version : Version 2
Format_Profile : HE-AAC / LC
MuxingMode : ADTS
CodecID : 15
Duration/String : 30分 9秒
BitRate_Mode/String : VBR
BitRate/String : 48.0 Kbps
Channel(s)/String : 2声道
ChannelPositions : Front: L R
SamplingRate/String : 48.0 KHz / 24.0 KHz
Compression_Mode/String : 有损压缩
Video_Delay/String : -459ms
StreamSize/String : 10.4 MiB (0%)
然后用eac3to分离aac,信息如下:
图片
里面有提到有+10ms的delay没有fix,没有在意,因为以前一直认为eac3to会fix好的。

切广告,然后重编码,用mp4box音视频合并,之后就发现不同步了,然后就设置delay

代码: 全选

mp4box -add test.264 -add test.aac test.mp4
mp4box -delay 2=550 -add test.mp4
此mp4用hc自带的lav分离器,可以正常播放;用haali,不能识别delay信息

以下是sample,包括
1.因为原始ts用tsmuxer切出的ts会不同步,所以我就demux了一段
2.eac3to分离出的aac,然后用megui的audio cutter
3.重编码一段264文件
4.用mp4box封装264和cutter的aac
度娘:http://pan.baidu.com/s/1i3r6o2x

问题:
1.eac3to应该会把delay给fix的,这次为啥没有
2.用什么封装mp4可以让haali也正常识别delay

吐槽:还是mkv方便啊
falcon
帖子: 10
注册时间: 2013-12-07 23:49

Re: [求助]mp4封装音视频不同步的问题

ffmpeg -async 1

pipe ffmpeg to AAC Encoder

代码: 全选

ffmpeg -i input.ts -vn -async 1 -c:a pcm_s16le -f wav - | [AAC_Encoder]
or libfdk-aac

代码: 全选

ffmpeg -i input.ts -vn -async 1 -c:a libfdk_aac -vbr 3 audio.m4a

代码: 全选

ffmpeg -i video.mp4 -i audio.m4a -map 0:v -map 1:a -c copy output.mp4
force fps

代码: 全选

... -r %inputfps% -i video.h264 -r %outputfps% ...
freesilent
帖子: 35
注册时间: 2012-02-03 14:01

Re: [求助]mp4封装音视频不同步的问题

ls的意思是用ffmpeg就可以分离出fix好的音频?
等拿到新的ts我来试试

第二个问题呢,那种方式封到mp4里的delay,haali可以识别?
头像
msg7086
帖子: 600
注册时间: 2011-02-19 0:49

Re: [求助]mp4封装音视频不同步的问题

1. eac3to 大部分的时候能正确处理delay。你说的+10应该是已经处理完了的。有时候也会不靠谱,但是我遇到的情况很少。
看音频是否同步的话,直接把aac挂在ts上对比音画就行了。
切割ts样本的话,直接用文件切割软件切出188字节的整数倍就行了。

2. delay最好是在原始流上加。比如你这220ms的延迟的话,直接eac3to test.aac out.aac +220ms就行了。
当然最好还是加在原始的ts解出流上,以免切广告的时候切进边界。
Delogo LGD Collections 各种台标下载 | Home Of VapourSynth Evolution

<回答が無い理由>
1. 誰も知らない
2. 質問文が意味不明
3. 知ってるが、お前の態度が気に入らない
4. 良いボケが思いつかない
freesilent
帖子: 35
注册时间: 2012-02-03 14:01

Re: [求助]mp4封装音视频不同步的问题

falcon 写了:ffmpeg -async 1

pipe ffmpeg to AAC Encoder

代码: 全选

ffmpeg -i input.ts -vn -async 1 -c:a pcm_s16le -f wav - | [AAC_Encoder]
or libfdk-aac

代码: 全选

ffmpeg -i input.ts -vn -async 1 -c:a libfdk_aac -vbr 3 audio.m4a

代码: 全选

ffmpeg -i video.mp4 -i audio.m4a -map 0:v -map 1:a -c copy output.mp4
force fps

代码: 全选

... -r %inputfps% -i video.h264 -r %outputfps% ...
新的ts测试,

代码: 全选

ffmpeg -asyns 1
声音延迟320ms,用eac3to声音提前
msg7086 写了:1. eac3to 大部分的时候能正确处理delay。你说的+10应该是已经处理完了的。有时候也会不靠谱,但是我遇到的情况很少。
看音频是否同步的话,直接把aac挂在ts上对比音画就行了。
切割ts样本的话,直接用文件切割软件切出188字节的整数倍就行了。

2. delay最好是在原始流上加。比如你这220ms的延迟的话,直接eac3to test.aac out.aac +220ms就行了。
当然最好还是加在原始的ts解出流上,以免切广告的时候切进边界。
谢谢提醒
falcon
帖子: 10
注册时间: 2013-12-07 23:49

Re: [求助]mp4封装音视频不同步的问题

我不喜欢 Demuxing,很麻烦
以下是我的方法,仅供参考

广告片段 00:01:00.00 ~ 00:01:09.999

切割1 - 00:00:00.000 ~ 00:00:59.999

代码: 全选

ffmpeg -i input.m2ts -ss 00:00:00.000 -t 00:00:59.999 -c:v libx264 -profile:v high -preset veryslow -crf 18 -x264opts ref=4:bframes=5 -c:a libfdk_aac cut1.mkv
(FFmpeg 会保留 Delay)

切割2 - 00:01:10.000 ~ EndTime

代码: 全选

ffmpeg -i input.m2ts -ss 00:01:10.000 -c:v libx264 -profile:v high -preset veryslow -crf 18 -x264opts ref=4:bframes=5 -c:a libfdk_aac cut2.mkv
(cut1.mkv、cut2.mkv 参数必须相同)

mylist.txt

代码: 全选

file 'path\cut1.mkv'
file 'path\cut2.mkv'
连接 切割1、切割2

代码: 全选

ffmpeg -f concat -i mylist.txt -c copy output.mp4
头像
msg7086
帖子: 600
注册时间: 2011-02-19 0:49

Re: [求助]mp4封装音视频不同步的问题

falcon 写了:我不喜欢 Demuxing,很麻烦
以下是我的方法,仅供参考
(恕删)
不经过AVS/VPY的话就没有办法调用优质的ivtc/deinterlace滤镜了。
实际压制过程中只切广告纯裸压的时候其实不是很多,最多就是一些收费台播30p的时候会用到。
Delogo LGD Collections 各种台标下载 | Home Of VapourSynth Evolution

<回答が無い理由>
1. 誰も知らない
2. 質問文が意味不明
3. 知ってるが、お前の態度が気に入らない
4. 良いボケが思いつかない
falcon
帖子: 10
注册时间: 2013-12-07 23:49

Re: [求助]mp4封装音视频不同步的问题

msg7086 写了:
falcon 写了:我不喜欢 Demuxing,很麻烦
以下是我的方法,仅供参考
(恕删)
不经过AVS/VPY的话就没有办法调用优质的ivtc/deinterlace滤镜了。
(恕删)
Video: PSP-MP4 720x480p
inverse telecine
deinterlace
drop duplicated frames
libass
resize 720x480, PAR 40:33 (Letterbox)

Audio: LC-AAC
downmix to Dolby Pro Logic II

代码: 全选

ffmpeg -i input.mkv -vf "fieldmatch,yadif='deint=interlaced',decimate,subtitles='input.ass',scale='w=min(720,ceil((480*33/40*dar)/16)*16):h=min(720,ceil((720*40/33/dar)/16)*16)',pad='w=720:h=480:x=(ow-iw)/2:y=(oh-ih)/2',setsar='sar=40/33'" -c:v libx264 -profile:v main -level 30 -preset veryslow -tune animation -crf 20 -x264opts b-pyramid=none:vbv-bufsize=10000:vbv-maxrate=10000 -ac 2 -af "aresample='matrix_encoding=dplii'" -c:a libfdk_aac -vbr 3 output.mp4
avs input

代码: 全选

avs2yuv input.avs - | ffmpeg -f yuv4mpegpipe -i - -c:v libx264 output.mp4
http://ffmpeg.org/ffmpeg-all.html

回到 “封装容器 / Container muxer and demuxer”