我有需要转换为MPEG-TS,使其适合以下规范文件:MPEG-TS编码
基本流的比特率[千比特/秒] 视频:2575 音频:2×192 字幕: - PAT/PMT: - 填料: -
元器件TS的比特率[千比特/秒] 视频:2652 音频:395 字幕:45 PAT/PMT:45 填料:62 总:3200 CBR
其他必需的组件: PAT PMT 空包
组件可能会弹出: NIT,SDT,EIT等
vcodec="h264"
acodec="mpga"
bitrate="2500"
arate="192"
samplerate=48000
ext="mpg"
mux="ts"
vlc="/usr/bin/vlc"
fmt="mpg"
dst="/home/adam/test/"
for a in *$fmt; do
$vlc -I dummy -vvv "/home/adam/test/" --sout "#transcode{vcodec=$vcodec,venc=x264{profile=main,level=3.0,hrd=cbr,bframes=2},vb=$bitrate,acodec=$acodec,ab=$arate,samplerate=$samplerate,channels=2}:standard{mux=$mux,dst=\"$dst$a.$ext\",ac$
done
与上面的脚本编码之后一切似乎没问题(视频和音频比特率编解码器都是恒定的),除了两件事:容器的比特率也应该保持CBR,但事实并非如此。此外,填充组件(0x1 ffff) - 空数据包丢失。是否有可能纠正脚本使空包以及容器常量(3,2 Mbps CBR)的比特率?
第二个选项与ffmpeg的编码:
ffmpeg -i video_input.mpg -i audio_input.mp2 -acodec copy -tune zerolatency -x264opts bitrate=2600:vbv-maxrate=2600:vbv-bufsize=166:nal_hrd=cbr -vpre libx264-iptv -vcodec libx264 -f mpegts -muxrate 3200K -y output.ts
但如何取消设置/禁用/删除SDT表?
第二个命令工作正常,但我怎样才能从文件中删除SDT表? – adismsc