Как я могу конвертировать любой mp4 в файл adv8dvbt23.ts? - PullRequest
0 голосов
/ 23 февраля 2019

Конечно, я могу скачать http://www.w6rz.net/adv8dvbt23.ts., и есть много примеров для ts-файлов dvbt.

Но я хочу преобразовать мой видеофайл в TS файл для dvbt.Во-первых, я проверил на Google, но я не могу найти ответ.Я думаю, это не имеет смысла, или способ мышления мог быть неправильным.

FFmpeg можно использовать для этого?но нет никакого параметра для режима передачи, QAM / 64QAB, защитный интервал.

1 Ответ

0 голосов
/ 23 февраля 2019

FFmpeg можно использовать для этого?но нет никакого параметра для режима передачи, QAM / 64QAB, защитного интервала.

Как я объяснил уже :

ffmpeg ничего не знает о вещах RF, таких как тип Constellation;это просто инструмент для транскодирования между различными видеоформатами..ts для "транспортного потока", и это формат видео контейнера, который использует DVB.С другой стороны, радиопередачи GNU Radio ничего не знают о видео - все, что они делают, это берут биты из файла.Поэтому этот файл должен быть в формате, понятном получателю, и поэтому я дал указание использовать FFMPEG с необходимыми параметрами.Поскольку я не знаю, какой битрейт вы планируете передавать, я не могу помочь вам с использованием ffmpeg

Итак, вам нужно сгенерировать видеоданные, которые ваш ресивер DVB-T понимает, но что еще более важно, вам нужно поместить их в контейнер, который обеспечивает постоянный битрейт.

Как указано в другом комментарии к вашему вопросу ham.stackexchange.com о теме, ваш основной источник примеров будетбыть собственным модулем gr-dtv GNU Radio;когда вы посмотрите на gnuradio/gr-dtv/examples/README.dvbt, вы найдете ссылку на https://github.com/drmpeg/dtv-utils, собственный инструмент W6RZ:)

Там вы найдете инструменты, необходимые для расчета точного битрейта потока вам нужен ваш транспортный поток 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
...