Я не могу использовать AV_CODEC_ID_MPEG2TS в ffmpeg

Я хочу использовать ffmpeg для преобразования исходного видеофайла yuv в видеофайл ts stream. Так что я делаю это в своем коде:

avcodec_find_encoder(AV_CODEC_ID_MPEG2TS);

Но когда я запускаю его, оказывается, что:

[NULL @ 0x8832020] No codec provided to avcodec_open2()

Я изменяю "AV_CODEC_ID_MPEG2TS" на "AV_CODEC_ID_MPEG2VIDEO", он работает хорошо, и генерирует файл mpg, работающий также хорошо. Поэтому я хочу спросить, почему я не могу использовать "AV_CODEC_ID_MPEG2TS"?

1 ответ

Я также ищу потоковый файл с помощью ffmpeg, так что я не уверен в этом, но это то, что я понимаю....

Mpeg TS (Транспортный поток) - это не кодек, это метод инкапсуляции, поэтому вы должны кодировать поток с помощью некоторого кода (я не уверен, что вы можете выбрать какой-либо кодек), а затем вы можете инкапсулировать его с помощью mpeg ts перед тем, как передавать по сети.

Если вам не нужно передавать поток по сети, возможно, вам не нужны mpeg ts.

Я надеюсь, что это будет полезно....!

Смотрите здесь: ffmpeg doxygen

Другие вопросы по тегам