3

У меня есть многопрограммный ввод. Я хочу взять каждую из программ и транскодировать каждую из них по отдельности (потому что одна - 16:9, одна - 4:3), а затем RTP каждый из потоков на другой адрес.

Проблема в том, что я не могу найти способ вкладывать кавычки так, чтобы это было приемлемо для VLC. В основном это потому, что мне нужно не только перекодировать и RTP, но и выбрать программу.


cvlc multi-program-input-source.ts 
--sout '#duplicate{
  dst="transcode{width=640,height=360,OTHER_SETTINGS}:rtp{mux=ts,dst=SOMEWHERE,port=20000},select="program=3"",
  dst="transcode{width=704,height=480,OTHER_SETTINGS}:rtp{mux=ts,dst=SOMEWHERE,port=20002},select="program=4""
}'

Я открыт для любого решения, но если есть способ выбрать программу без кавычек или таким образом, чтобы я мог их вкладывать, это было бы здорово.

2 ответа2

0

Правильный формат должен заканчиваться на "dst" двойной кавычкой, а затем заключать в кавычки оператор выбора

cvlc multi-program-input-source.ts 
--sout '#duplicate{
  dst="transcode{width=640,height=360,OTHER_SETTINGS}:rtp{mux=ts,dst=SOMEWHERE,port=20000}",select="program=3",
  dst="transcode{width=704,height=480,OTHER_SETTINGS}:rtp{mux=ts,dst=SOMEWHERE,port=20002}",select="program=4"
}'
-1

Я не совсем уверен, что это будет работать, но во многих операционных системах вы можете избежать внутренних кавычек с обратной косой чертой (\"). Так это будет выглядеть так:

cvlc multi-program-input-source.ts 
--sout '#duplicate{
  dst=\"transcode{width=640,height=360,OTHER_SETTINGS}:rtp{mux=ts,dst=SOMEWHERE,port=20000},select=\"program=3\"",
  dst="transcode{width=704,height=480,OTHER_SETTINGS}:rtp{mux=ts,dst=SOMEWHERE,port=20002},select=\"program=4\""
}'

Возможно, я напутал, какие двойные кавычки нужно избегать, но, надеюсь, экранирование внутренних наборов с помощью \"сработает для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .