Практическое руководство: выполните пользовательское приложение от pcmanfm в lubuntu

Я выполняю Lubuntu 14.04.3 LTS, и я загрузил и установил castnow для потоковой передачи видео от моего ПК до моего Chromecast.
Единственная альтернатива, которую я знаю, должна сделать это через Видеопоток с помощью Хрома. Но это использует еще столько ресурсов, что мой плохой старый ноутбук едва не может взять его...
Я нахожу, что castnow работает действительно хорошо. Но это - инструмент командной строки, и запустить его я должен перейти к окну терминала и работать:

castnow --address [ip address chromecast] --myip [localip] [path to video]

Это работает, но я нашел бы это намного легче, если я мог бы перейти к видео с помощью моего файлового менеджера (pcmanfm) и откройте видео.
Я попытался создать файл сценария, который выполняет вышеупомянутую команду с помощью выбранного файла в качестве входного параметра (%f), но я перестал работать скудно...

И мой дорогой друг Google не смог помочь мне до сих пор. Кто-либо может помочь мне сделать это?

Обновление 16 октября:

Я почти сделал это!

Вещь, которая заняла большую часть времени, состояла в том, чтобы найти ошибку в pcmanfm, что это не выполняет сценарии оболочки. Следующая статья описывает это хорошо и дает обходное решение: https://bugs.launchpad.net/ubuntu / + source/lubuntu-default-settings / + ошибка/975152

Я создал .desktop файл, который выполняет сценарий и передает файл в качестве параметра. Это появляется как опция в меню и том способе, которым можно также выбрать его в pcmanfm.

Сценарий берет имя файла в качестве параметра и выполняет castnow со всеми параметрами. К сожалению, это не работает.

Сценарий, который я создал, идет как это:

filename=$1
filename=${filename:7:$((${#filename}-7))}
filename=${filename//%20/\\ }
echo castnow --address 192.168.0.21 --myip 192.168.0.47 $filename
castnow --address 192.168.0.21 --myip 192.168.0.47 $filename

Результат:

castnow --address 192.168.0.21 --myip 192.168.0.47 /home/joost/Videos/American\ Horror\ Story\ Season\ 1\ Complete\ 480p\ BZINGAZ/american.horror.story.s01e11.720p.hdtv.x264-compulsion.mkv
Error: Load failed

И когда я копирую команду в другое окно терминала, это работает. Как это может быть? И как это может быть решено.

Другое обновление:

Проблема, кажется, связана с пробелами в пути. Файл на рабочем столе отправляет путь к сценарию удара с %u параметром. И поскольку папка имеет некоторые пробелы в ней, они преобразовываются в %20 В сценарии, я преобразовываю их назад в "\". Если я тестирую свой материал с файлом, который не имеет никаких пробелов, он работает (!!!).

Но пробелы являются частью жизни. Как обойти это?

И другое обновление:

Я сделал это! С немного обманывание, но это работает. Я добавил некоторые строки в сценарии для замены всех пробелов символами нижнего подчеркивания в файловой системе:

#!/bin/bash
# replace all spaces by underscores in the Videos-folders and -files:
find /home/joost/Videos/ -name "* *" -type d | rename 's/ /_/g'    # do the directories first
find /home/joost/Videos/ -name "* *" -type f | rename 's/ /_/g'
filename=$1
# remove file:// from the file-variable:
filename=${filename:7:$((${#filename}-7))}
# new films may contain spaces in the path. They have been replace by underscores. This also needs to happen in the parameter:
filename=${filename//%20/_}
# now we are ready to go:
castnow --address 192.168.0.21 --myip 192.168.0.47 $filename
read

Это работает, и я доволен им. Но если кто-то знает, как обойти пробелы, я был бы рад знать.

Обновление 18 октября:

Я узнал, как обойти пробелы (и другие специальные символы). В первую очередь, я узнал как к urldecode парамать. Но прием для обхождения пробелов (и другие специальные символы) оказывается для добавления 'оценки' к оператору. Таким образом, заключительный оператор в моем сценарии теперь: оценка castnow - обращается 192.168.0.21 - myip 192.168.0.47$filename

Так, вот именно. Только остающаяся проблема - то, что castnow, кажется, не может играть avi файлы. Я создал проблему для этого в GitHub.

2
задан 18 October 2015 в 13:26

1 ответ

Вы можете установить заявление по умолчанию использовать для соответствующего типа файла: щелкните правой кнопкой мыши по видео файлу, выберите «Свойства», изменитесь «Открытый С» выбором и нажмите хорошо.

0
ответ дан 2 December 2019 в 23:52

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

Похожие вопросы: