Это - не обязательно плохой знак, но позвольте мне ответить на Ваш последний вопрос сначала:
Что означает точно?
В top
исходный код (из http://www.opensource.apple.com/release/mac-os-x-1082/) застрявшее состояние упоминается как идентификатор LIBTOP_STATE_STUCK
(от libtop.c
):
libtop_state_str(uint32_t state)
{
const char *strings[] = {
"zombie",
#define LIBTOP_STATE_ZOMBIE 0
"running",
#define LIBTOP_STATE_RUN 1
"stuck",
#define LIBTOP_STATE_STUCK 2
"sleeping",
#define LIBTOP_STATE_SLEEP 3
"idle",
#define LIBTOP_STATE_IDLE 4
"stopped",
#define LIBTOP_STATE_STOP 5
"halted",
#define LIBTOP_STATE_HALT 6
"unknown"
#define LIBTOP_STATE_UNKNOWN 7
};
(...)
}
Позже в том же файле, LIBTOP_STATE_STUCK
отображается на состоянии ядра TH_STATE_UNINTERRUPTIBLE
:
/* Translate a mach state to a state in the state breakdown array. */
static int
libtop_p_mach_state_order(int state, long sleeptime)
{
switch (state) {
case TH_STATE_RUNNING:
return LIBTOP_STATE_RUN;
case TH_STATE_UNINTERRUPTIBLE:
return LIBTOP_STATE_STUCK;
(...)
}
Таким образом, процесс в застрявшем состоянии означает, что процесс/поток находится в бесперебойном состоянии ожидания, которое является как TH_STATE_UNINTERRUPTIBLE
определяется в структуре ядра thread_basic_info
(см. http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/thread_basic_info.html):
struct thread_basic_info
{
(...)
integer_t run_state;
(...)
};
где run_state
:
run_state: состояние выполнения потока. Возможные значения:
(...)
- TH_STATE_UNINTERRUPTIBLE: поток находится в бесперебойном состоянии ожидания.
(...)
Это обычно вызывается процессом, ожидающим на вводе-выводе, то есть, процесс запросил читать или записать в диск или сеть и ожидает системного вызова возврата (см. http://en.wikipedia.org/wiki/Sleep_%28operating_system%29#Uninterruptible_sleep или http://www.novell.com/support/kb/doc.php?id=7002725 для получения дополнительной информации).
(Если не использование опций BSD, поскольку это обычно имеет место в Linux, ps
показывает бесперебойный сон как D состояние.)
Это - часть нормального жизненного цикла процесса?
Да, это. То, что не нормально, - то, что процесс остается в этом состоянии в течение долгого времени. Это - плохой знак.
Почему этот процесс в особенности?
Трудный сказать. Это обычно вызывается узкими местами ввода-вывода с тяжелой активностью диска или ухудшенной возможностью соединения при использовании сетевых файловых систем (самый обычный сценарий, по моему опыту).
(Это - связанный вопрос в, Спрашивают Отличающийся: https://apple.stackexchange.com/questions/58697/how-does-stuck-in-results-of-top-relate-to-not-responding-in-activity-m.)
Лучше, чем попытка добавить команды контекстного меню к минималистским Файлам Пантеона Элементарной ОС или использовать другие мультимедийные приложения для извлечения звука из видео я предполагаю, что самое простое должно только установить Наутилус (это нисколько не проблематично в ЭОС вопреки Thunar, который идет с целой средой Xfce).
sudo apt-get install nautilus
Затем установите Инструмент конфигурирования Действий Наутилуса и откройте его..
Я обеспечу пример для извлечения аудио (aac в m4a контейнере) от flv и mp4 видеофайлов.
Определите новое действие, дайте ему имя, возможно, значок также. Проверьте - 'Действие дисплея в контекстное меню выбора'.
Под вкладкой команды добавьте команду
bash -c 'ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a' %f
.
Под вкладкой Execution существуют опции выбрать в зависимости от того, что Вы хотите видеть в течение и после действия (откройте терминал, отчет).
Под вкладкой Mimetypes введите фильтры для типа файлов, в контекстном меню которых Вы хотите видеть команду - в этом случае: video/mp4
и video/flv
.
Существуют другие опции, но они выглядят достаточными в целях моего вопроса.
Подобные действия могут быть добавлены для извлечения звука из других типов видео и, конечно, в других совсем других целях.
(Это решение основано на предложениях и решениях, существующих в ссылках, уже отправленных в вопросе, и кредит переходит к авторам.)
Может использоваться в пользовательских действиях Thunar также.
Мой начальный источник - это.
Если Вы готовы воздержаться от использования GUI, можно использовать ffmpeg
довольно легко сделать это.
Если Вы переходите к QuickTime: Файлы примера, можно загрузить этот файл примера, sample_mpeg4.mp4. После загрузки его разархивируйте его.
$ ls -l | grep sample
-rw-rw-r-- 1 saml saml 235829 Nov 4 2005 sample_mpeg4.mp4.zip
-rw-r--r-- 1 saml saml 245779 Nov 3 2005 sample_mpeg4.mp4
Можно извлечь аудио AAC frpm mP4 файл.
$ ffmpeg -i sample_mpeg4.mp4 -vn -acodec copy sample_mpeg4.aac
FFmpeg version 0.6.3-rpmfusion, Copyright (c) 2000-2010 the FFmpeg developers
built on May 5 2011 19:20:01 with gcc 4.5.1 20100924 (Red Hat 4.5.1-4)
...
...
Output #0, adts, to 'sample_mpeg4.aac':
Metadata:
encoder : Lavf52.64.2
Stream #0.0(eng): Audio: aac, 32000 Hz, stereo, 48 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= 31kB time=4.99 bitrate= 50.4kbits/s
video:0kB audio:30kB global headers:0kB muxing overhead 3.594943%
Получающийся файл AAC.
$ ls -l |grep sample
-rw-rw-r-- 1 saml saml 31468 Oct 4 22:09 sample_mpeg4.aac
-rw-r--r-- 1 saml saml 245779 Nov 3 2005 sample_mpeg4.mp4
-rw-rw-r-- 1 saml saml 235829 Nov 4 2005 sample_mpeg4.mp4.zip
Можно также использовать ffmpeg
подтвердить формат файла:
$ ffmpeg -i sample_mpeg4.aac
...
...
Input #0, aac, from 'sample_mpeg4.aac':
Duration: 00:00:05.59, bitrate: 45 kb/s
Stream #0.0: Audio: aac, 32000 Hz, stereo, s16, 45 kb/s
At least one output file must be specified
Можно использовать VLC, и это - функция Convert/Stream, чтобы сделать это. После запуска VLC.
У меня есть хорошее решение:
#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
find $1 -iname "*" -a -type f -exec ffmpeg -y -i {} {}.mp3 \;
# restore $IFS
IFS=$SAVEIFS
Необходимо звонить:
./myscript.sh youroootpathofvideos
Да, прямо в документация .
-121--229986-Я преобразую последовательности в unix-временные метки (секунды с 1.1.1970 0:0:0). Они могут легко сравнивать
unix_todate=$(date -d "${todate}" "+%s")
unix_cond=$(date -d "${cond}" "+%s")
if [ ${unix_todate} -ge ${unix_cond} ]; then
echo "over condition"
fi
-121--4019- Я был удивлен, как трудно найти хороший инструмент для этого, но вот мой выбор:
FFmulticonverter является очень основным gui для avconv/ffmpeg. Вы можете поместить файлы с помощью перетаскивания и, при необходимости, сохранить файлы в их исходном расположении - что делает его очень быстрым для меня.
и вы можете просто использовать код:
-vn -acodec copy
, как в avconv -i INPUT.mp4 -vn -acodec copy OUTFILE.m4a
Для него есть наборы параметров, но в данный момент он использует .aac
в качестве расширения файла, и я предлагаю использовать .m4a
.
Выберите раздел «дорожки»
Определите звуковую дорожку для извлечения в отдельный файл.