如何将任何mp4转换为adv8dvbt23.ts文件?

时间:2019-02-23 16:14:01

标签: ffmpeg mpeg mpeg2-ts dvb-t

我当然可以下载http://www.w6rz.net/adv8dvbt23.ts。 dvbt样本ts文件的样本很多。

但是,我想将我的视频文件转换为 TS文件以进行dvbt。 首先,我检查了google,但找不到任何答案。 我认为这没有意义,或者思维方式可能是错误的。

FFmpeg 可以用于此吗? 但是,对于传输模式,QAM / 64QAB,保护间隔,没有任何参数。

1 个答案:

答案 0 :(得分:2)

  
    

FFmpeg可以用于此吗?但是,对于传输模式,QAM / 64QAB,保护间隔,没有任何参数。

  

正如我对already的解释:

  

ffmpeg对星座之类的RF东西一无所知。它只是在不同视频格式之间进行转码的工具。 .ts用于“传输流”,它是DVB使用的视频容器格式。另一方面,GNU Radio的发送流程图对视频一无所知–他们所做的只是从文件中获取比特。因此该文件必须采用接收者可以理解的格式,这就是为什么我指示您将FFMPEG与所需的参数一起使用的原因。由于我不知道您打算传输哪种比特率,因此无法帮助您使用ffmpeg

因此,您需要生成DVB-T接收器可以理解的视频数据,但更重要的是,甚至需要将它们放入确保恒定比特率的容器中。

正如您在ham.stackexchange.com问题上的另一条评论中所指出的那样,示例的主要来源是GNU Radio自己的gr-dtv模块。当您查看gnuradio/gr-dtv/examples/README.dvbt时,会发现指向W6RZ自己的工具https://github.com/drmpeg/dtv-utils的链接:)

您将找到计算MPEG传输流所需的确切流比特率所需的工具。请记住,DVB-T发射机必须以每秒固定的比特数传输,因此您的视频容器必须为恒定比特率。这就是为什么传输流填充视频数据以达到恒定速率的原因。

然后,您将使用ffmpeg对视频进行转码,并将其放入传输流容器中:

 ffmpeg -re -i inputvideo.mpeg \
        -vcodec mpeg2video \
        -s 720x576          #resolution; this is a good choice, since most TVs will deal with it \
        -r 25               #frames per second, use 25\
        -flags cgop+ilme -sc_threshold 1000000000 #MPEG codec options\
        -b:v 2M             #Video *codec data* bit rate (defines video quality). Must be lower than stream bit rate, so < muxrate-(audio bitrate)\
        -minrate:v 2M -maxrate:v 2M #enforce constant video bit rate\
        -acodec mp2 -ac 2 -b:a 192k #audio codec, quality and bitrate\
        -muxrate ${RATE FROM TOOL}
        -f mpegts #specify you want a MPEG Transport Stream container as output\
        outputfile.ts