Я не могу использовать 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