Извлечь аудио из видео в Linux с программой GUI?

Это - не обязательно плохой знак, но позвольте мне ответить на Ваш последний вопрос сначала:

Что означает точно?

В 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.)

5
13.04.2017, 15:22
5 ответов

Лучше, чем попытка добавить команды контекстного меню к минималистским Файлам Пантеона Элементарной ОС или использовать другие мультимедийные приложения для извлечения звука из видео я предполагаю, что самое простое должно только установить Наутилус (это нисколько не проблематично в ЭОС вопреки Thunar, который идет с целой средой Xfce).

sudo apt-get install nautilus

Затем установите Инструмент конфигурирования Действий Наутилуса и откройте его..

Я обеспечу пример для извлечения аудио (aac в m4a контейнере) от flv и mp4 видеофайлов.

Определите новое действие, дайте ему имя, возможно, значок также. Проверьте - 'Действие дисплея в контекстное меню выбора'.

enter image description here

Под вкладкой команды добавьте команду

bash -c 'ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a' %f.

enter image description here

Под вкладкой Execution существуют опции выбрать в зависимости от того, что Вы хотите видеть в течение и после действия (откройте терминал, отчет).

Под вкладкой Mimetypes введите фильтры для типа файлов, в контекстном меню которых Вы хотите видеть команду - в этом случае: video/mp4 и video/flv.

enter image description here

Существуют другие опции, но они выглядят достаточными в целях моего вопроса.

enter image description here

Подобные действия могут быть добавлены для извлечения звука из других типов видео и, конечно, в других совсем других целях.

(Это решение основано на предложениях и решениях, существующих в ссылках, уже отправленных в вопросе, и кредит переходит к авторам.)


Может использоваться в пользовательских действиях Thunar также.

Мой начальный источник - это.

4
27.01.2020, 20:36

Командная строка

Если Вы готовы воздержаться от использования 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

GUI

Можно использовать VLC, и это - функция Convert/Stream, чтобы сделать это. После запуска VLC.

Пример

Выбор Преобразовывает/Сохраняет из выпадающего Файла

           ss #1

Выберите видеофайл и преобразуйте поток

           ss #2

Запустите преобразование

           ss #3

4
27.01.2020, 20:36
  • 1
    @cipricus - AAC и WEBM там. опечатка –  slm♦ 05.10.2013, 02:34
  • 2
    @cipricus - нет я не положителен, я проверил бы входную опцию сырых данных дампа дважды, также ввел бы по абсолютному адресу вокруг меню параметров под screwdriver/plyer значком рядом с аудио. –  slm♦ 05.10.2013, 03:12
  • 3
    Посмотрите здесь: wiki.videolan.org/Extract_audio –  slm♦ 05.10.2013, 03:17
  • 4
    извините. на самом деле единственные опции аудиовыхода: mp3, ogg, mp3 (mp4), flac, CD. таким образом, никакое решение aac-m4a для flv и mp4 видео (YouTube). (где AAC?) webm является ogg аудио. но там, кажется, транскодирует так или иначе, поскольку существует опция установить скорость передачи. при попытке произвести webm как ogg, я ничего не получил так или иначе –   05.10.2013, 03:21
  • 5
    , я не уверен, куда кодеки для VLC прибывают из, они, возможно, должны были бы быть установлены отдельно. –  slm♦ 05.10.2013, 03:23

У меня есть хорошее решение:

#!/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
0
27.01.2020, 20:36
  • 1
    я просил GUI (графический не терминальный) у команд. а не преобразовать в mp3, но извлечь аудио сервис –   05.10.2013, 19:34

Да, прямо в документация .

-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 .

0
27.01.2020, 20:36

Обрезка без потерь

Выберите раздел «дорожки»

enter image description here

Определите звуковую дорожку для извлечения в отдельный файл.

enter image description here

-1
05.11.2021, 16:09

Теги

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