我当然可以下载http://www.w6rz.net/adv8dvbt23.ts。 dvbt样本ts文件的样本很多。
但是,我想将我的视频文件转换为 TS文件以进行dvbt。 首先,我检查了google,但找不到任何答案。 我认为这没有意义,或者思维方式可能是错误的。
FFmpeg 可以用于此吗? 但是,对于传输模式,QAM / 64QAB,保护间隔,没有任何参数。
答案 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