LINUX.ORG.RU
ФорумAdmin

Какой поток обозначает знак минус в командной строке Linux?

 , , ,


2

3

Пример:

youtube-dl -o - "http://your.media/url" | mplayer -
Минус после -o это что? Ссылка на пример.

Я к тому, что можно ли так:
youtube-dl -o - "http://your.media/url" | ffmpeg -i - -acodec mp3 -ar 44100 -ab 192k video_sound.mp3
Знаю, что можно вот так:
cat test.wav | ffmpeg -i pipe:0
Ссылка на пример.

Но мне интересно понять - можно ли через минус? И как подать поток на ffmpeg c youtube-dl?

★★★

Последнее исправление: Windows (всего исправлений: 4)

это просто конвенция а не стандартный механизм. на вывод это stdout, на ввод это stdin. обычно для передачи через пайп если программа ожидает filename в аргументах, а не работает как фильтр по умолчанию

val-amart ★★★★★
()

Никакой, это просто ключ вроде -o, но пустой.

anonymous
()

почитал ман по ффмпег. он не поддерживает эту конвенцию, поэтому ему надо говорить pipe:0 а не просто "-". значит это ровно одно и тоже — читать с stdin, в данном случае из пайпа.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

т.е. тебе надо

youtube-dl -o - "http://your.media/url" | ffmpeg -i pipe:0 acodec mp3 -ar 44100 -ab 192k video_sound.mp3


просто разработчики ффмпег ожидаемо упорыши.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

Спасибо. Ты знаешь, и так и так работает:

youtube-dl -o - https://youtu.be/TZsx64j_Bqg | ffmpeg -i pipe:0 -acodec mp3 -ar 44100 -ab 192k video_sound.mp3
youtube-dl -o - https://youtu.be/TZsx64j_Bqg | ffmpeg -i - -acodec mp3 -ar 44100 -ab 192k video_sound.mp3

Windows ★★★
() автор топика
Последнее исправление: Windows (всего исправлений: 1)

Стандарта, увы, нет. Обычно stdin.

RazrFalcon ★★★★★
()
Ответ на: комментарий от val-amart

Хм, мне казалось - — означает перестать парсить ключи и трактовать оставшуюся строку как входные данные. Только вот не помню откуда это.

anonymous
()
Ответ на: комментарий от anonymous

это ты с гнутым getopt путаешь — для всего что его использует (или его конвенцию)

--

это конец списка опций, дальше только аргументы.

(юлин, почему на лоре нет инлайн блокквоут)

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

(юлин, почему на лоре нет инлайн блокквоут)

что такое блокквоут?

system-root ★★★★★
()

я одно не понял, если блаародный Дон желает получить *.mp3 с внешнего видеоролика, то кто ему мешает прочитать man/help по youtube-dl и не городить непонятно какой костыль?

novitchok ★★★★★
()
Ответ на: комментарий от Black_Shadow

А тире тогда как выглядит? Так же, как дефис, или как—то по—другому?

templarrr ★★★★★
()
Ответ на: комментарий от novitchok

почитай, клоун.

Перед тем, как хамить неплохо было бы разобраться в данном вопросе. Просто взять и разобраться, а потом ещё и сделать. Вот когда получишь 192k, тогда и будешь выпендриваться.

Windows ★★★
() автор топика
Последнее исправление: Windows (всего исправлений: 1)

BTW, есть ещё /dev/stdin. Вот его уже, в отличие от дефиса, можно любой программе подсовывать.

greatperson
()
Ответ на: комментарий от Windows

Влезем в спор

Дабы не разводить полемику, я так понимаю это оно:

[test_youtube]: youtube-dl -x --audio-format mp3 --audio-quality 196K https://www.youtube.com/watch?v=7pOr3dBFAeY
[youtube] 7pOr3dBFAeY: Downloading webpage
[youtube] 7pOr3dBFAeY: Downloading video info webpage
[youtube] 7pOr3dBFAeY: Extracting video information
[youtube] 7pOr3dBFAeY: Downloading MPD manifest
[download] Destination: Scorpions - Still Loving You (Official Video)-7pOr3dBFAeY.webm
[download] 100% of 4.63MiB in 00:00
[ffmpeg] Destination: Scorpions - Still Loving You (Official Video)-7pOr3dBFAeY.mp3
Deleting original file Scorpions - Still Loving You (Official Video)-7pOr3dBFAeY.webm (pass -k to keep)

[test_youtube]: l
'Scorpions - Still Loving You (Official Video)-7pOr3dBFAeY.mp3'

[test_youtube]: file Scorpions\ -\ Still\ Loving\ You\ \(Official\ Video\)-7pOr3dBFAeY.mp3 
Scorpions - Still Loving You (Official Video)-7pOr3dBFAeY.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 48 kHz, Stereo

ronkajitsu
()
Ответ на: Влезем в спор от ronkajitsu

Дабы не разводить полемику, я так понимаю это оно

За совет спасибо, но это не оно. Почему не оно - потому что это ресемплинг с низкого на высокий битрейт. Обрати внимание, что он сначала скачивает файл с расширением webm. Дай команду:

youtube-dl -F https://youtu.be/7pOr3dBFAeY | grep webm
Что мы видим:
249          webm       audio only DASH audio   55k , opus @ 50k, 1.76MiB
250          webm       audio only DASH audio   77k , opus @ 70k, 2.37MiB
171          webm       audio only DASH audio  137k , vorbis@128k (44100Hz), 4.40MiB
251          webm       audio only DASH audio  148k , opus @160k, 4.63MiB
278          webm       194x144    DASH video   99k , webm container, vp9, 15fps, video only, 2.65MiB
242          webm       324x240    DASH video  198k , vp9, 30fps, video only, 2.75MiB
243          webm       486x360    DASH video  318k , vp9, 30fps, video only, 4.42MiB
244          webm       648x480    DASH video  473k , vp9, 30fps, video only, 7.07MiB
43           webm       640x360    medium , vp8.0,  vorbis@128k
Т.е. максимум, что мы можем получить из webm - 160k. Возможно, он скачивает этот файл со 160k (хотя, не факт), а затем делает ресемплинг до 192k с помощью ffmpeg.

Windows ★★★
() автор топика
Последнее исправление: Windows (всего исправлений: 3)
Ответ на: комментарий от mos

Минус это ты, потому что даже не ноль.

anonymous
()
Ответ на: комментарий от Windows

Это конечно ресемплинг, и вместо этого там можно использовать VBR. Можно посмотреть у этой же опции в man. Но тут дело именно в исходнике и другим способом лучше вы не получите, насколько я понимаю.

[test_youtube]: youtube-dl -F https://www.youtube.com/watch?v=yCC_b5WHLX0 | grep audio
249          webm       audio only DASH audio   51k , opus @ 50k, 1.80MiB
250          webm       audio only DASH audio   69k , opus @ 70k, 2.31MiB
140          m4a        audio only DASH audio  128k , m4a_dash container, mp4a.40.2@128k, 4.60MiB
171          webm       audio only DASH audio  129k , vorbis@128k, 4.25MiB
251          webm       audio only DASH audio  135k , opus @160k, 4.58MiB
[test_youtube]: youtube-dl -F https://www.youtube.com/watch?v=LaP1H-JJroU | grep audio
249          webm       audio only DASH audio   61k , opus @ 50k, 21.37MiB
250          webm       audio only DASH audio   94k , opus @ 70k, 28.63MiB
140          m4a        audio only DASH audio  131k , m4a_dash container, mp4a.40.2@128k (44100Hz), 52.48MiB
171          webm       audio only DASH audio  151k , vorbis@128k (44100Hz), 50.81MiB
251          webm       audio only DASH audio  187k , opus @160k, 56.31MiB
141          m4a        audio only DASH audio  258k , m4a_dash container, mp4a.40.2@256k (44100Hz), 105.35MiB
Формат для скачивания тоже можно указать.

ronkajitsu
()
Ответ на: комментарий от ronkajitsu

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

В том-то и дело, что получу, если исходник даёт 192k:

youtube-dl -F https://youtu.be/Q8hpOKh8Dk8 | grep webm
249          webm       audio only DASH audio   53k , opus @ 50k, 1.44MiB
250          webm       audio only DASH audio   71k , opus @ 70k, 1.86MiB
251          webm       audio only DASH audio  137k , opus @160k, 3.71MiB
171          webm       audio only DASH audio  141k , vorbis@128k (44100Hz), 3.73MiB
278          webm       256x144    DASH video   95k , webm container, vp9, 15fps, video only, 1.36MiB
242          webm       426x240    DASH video  160k , vp9, 30fps, video only, 2.18MiB
243          webm       640x360    DASH video  359k , vp9, 30fps, video only, 4.13MiB
244          webm       854x480    DASH video  674k , vp9, 30fps, video only, 6.77MiB
247          webm       1280x720   DASH video 1382k , vp9, 30fps, video only, 10.20MiB
43           webm       640x360    medium , vp8.0,  vorbis@128k

youtube-dl https://youtu.be/Q8hpOKh8Dk8

midentify.sh Avao\ -\ Cascade\ \(Original\ Mix\)-Q8hpOKh8Dk8.mp4

ID_VIDEO_ID=0
ID_AUDIO_ID=0
ID_AID_0_LANG=eng
ID_CLIP_INFO_NAME0=major_brand
ID_CLIP_INFO_VALUE0=mp42
ID_CLIP_INFO_NAME1=minor_version
ID_CLIP_INFO_VALUE1=0
ID_CLIP_INFO_NAME2=compatible_brands
ID_CLIP_INFO_VALUE2=isommp42
ID_CLIP_INFO_NAME3=creation_time
ID_CLIP_INFO_VALUE3=2015-12-29\ 22:47:35
ID_CLIP_INFO_N=4
ID_FILENAME=Avao\ -\ Cascade\ \(Original\ Mix\)-Q8hpOKh8Dk8.mp4
ID_DEMUXER=lavfpref
ID_VIDEO_FORMAT=H264
ID_VIDEO_BITRATE=1054880
ID_VIDEO_WIDTH=1280
ID_VIDEO_HEIGHT=720
ID_VIDEO_FPS=30.000
ID_VIDEO_ASPECT=1.7778
ID_AUDIO_FORMAT=MP4A
ID_AUDIO_BITRATE=192000
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=2
ID_START_TIME=0.00
ID_LENGTH=243.72
ID_SEEKABLE=1
ID_CHAPTERS=0
ID_VIDEO_CODEC=ffh264
ID_AUDIO_BITRATE=192000
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=2
ID_AUDIO_CODEC=ffaac
ID_EXIT=EOF

youtube-dl -F https://youtu.be/Q8hpOKh8Dk8 | grep 192k
22           mp4        1280x720   hd720 , avc1.64001F,  mp4a.40.2@192k (best)

Windows ★★★
() автор топика
Последнее исправление: Windows (всего исправлений: 2)
Ответ на: комментарий от Windows

Если посмотреть внимательно, то можно увидеть, что youtube-dl можно указать этот же поток под номером 22, а также по-дефолту он пытается качнуть самый лучший поток, а не webm (на своё усмотрение). В примере выше получилось именно это. Если по каким-то причинам он качает не тот поток, то это легко исправляется через опцию -f. 4 теста, строка запроса, результат инфы от avprobe:

youtube-dl -f 22 -x --audio-format mp3 --audio-quality 9 https://youtu.be/Q8hpOKh8Dk8

[youtube] Q8hpOKh8Dk8: Downloading webpage
[youtube] Q8hpOKh8Dk8: Extracting video information
[download] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp4
[download] 100% of 36.04MiB in 00:33
[avconv] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp3
Deleting original file Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp4 (pass -k to keep)

    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 77 kb/s

youtube-dl -f 22 -x --audio-format mp3 --audio-quality 0 https://youtu.be/Q8hpOKh8Dk8

[youtube] Q8hpOKh8Dk8: Downloading webpage
[youtube] Q8hpOKh8Dk8: Extracting video information
[download] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp4
[download] 100% of 36.04MiB in 00:30
[avconv] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp3
Deleting original file Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp4 (pass -k to keep)

    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 233 kb/s

youtube-dl -f 22 -x --audio-format mp3 --audio-quality 192K https://youtu.be/Q8hpOKh8Dk8

[youtube] Q8hpOKh8Dk8: Downloading webpage
[youtube] Q8hpOKh8Dk8: Extracting video information
[download] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp4
[download] 100% of 36.04MiB in 00:36
[avconv] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp3
Deleting original file Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp4 (pass -k to keep)

    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 192 kb/s

youtube-dl -x --audio-format mp3 --audio-quality 0 https://youtu.be/Q8hpOKh8Dk8

[youtube] Q8hpOKh8Dk8: Downloading webpage
[youtube] Q8hpOKh8Dk8: Extracting video information
[download] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.webm
[download] 100% of 3.71MiB in 00:03
[avconv] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp3
Deleting original file Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.webm (pass -k to keep)

    Stream #0:0: Audio: mp3, 48000 Hz, stereo, s16p, 251 kb/s
Проблема - надо ручками инфу проверять. Для 22 потока инфы об аудио нет. Если верить avprobe, то аудио он лучше чем в этом потоке нашёл, но из примера ниже видно, что это 251 поток. Кроме того, судя по выводу лога, видео и аудио могут хранится отдельно и в выходном файле он может мёржить их в один (о чём правда предупреждает), поэтому который там поток оказался - неизвестно.
[test_youtube]: youtube-dl https://youtu.be/Q8hpOKh8Dk8 
[youtube] Q8hpOKh8Dk8: Downloading webpage
[youtube] Q8hpOKh8Dk8: Extracting video information
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
[download] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.f136.mp4
[download] 100% of 11.30MiB in 00:16
[download] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.f251.webm
[download] 100% of 3.71MiB in 00:00
[ffmpeg] Merging formats into "Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mkv"
Deleting original file Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.f136.mp4 (pass -k to keep)
Deleting original file Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.f251.webm (pass -k to keep)

Судя по всеми, перекодирование производится постоянно и тем же ffmpeg. Кроме того, у меня на этом компе инфа от youtube-dl немного другая на этот ролик

[youtube] Q8hpOKh8Dk8: Downloading webpage
[youtube] Q8hpOKh8Dk8: Extracting video information
[info] Available formats for Q8hpOKh8Dk8:
format code  extension  resolution note
249          webm       audio only DASH audio , opus @ 50k
250          webm       audio only DASH audio , opus @ 70k
171          webm       audio only DASH audio , audio@128k
140          m4a        audio only DASH audio , m4a_dash container, aac  @128k
251          webm       audio only DASH audio , opus @160k
278          webm       144p       DASH video , webm container, VP9, video only
160          mp4        144p       DASH video , video only
242          webm       240p       DASH video , video only
133          mp4        240p       DASH video , video only
243          webm       360p       DASH video , video only
134          mp4        360p       DASH video , video only
244          webm       480p       DASH video , video only
135          mp4        480p       DASH video , video only
247          webm       720p       DASH video , video only
136          mp4        720p       DASH video , video only
17           3gp        176x144    
36           3gp        320x240    
5            flv        400x240    
43           webm       640x360    
18           mp4        640x360    
22           mp4        1280x720   (best)
В 22 потоке не видать информации об аудио вообще. А разбираться кто решает который поток лучше и что качать мне не хочется сейчас, честно говоря.

ronkajitsu
()
Ответ на: комментарий от ronkajitsu

У меня так:

youtube-dl https://youtu.be/Q8hpOKh8Dk8
[youtube] Q8hpOKh8Dk8: Downloading webpage
[youtube] Q8hpOKh8Dk8: Downloading video info webpage
[youtube] Q8hpOKh8Dk8: Extracting video information
[youtube] Q8hpOKh8Dk8: Downloading MPD manifest
WARNING: Your copy of avconv is outdated and unable to properly mux separate video and audio files, youtube-dl will download single file media. Update avconv to version 10-0 or newer to fix this.
[download] Destination: Avao - Cascade (Original Mix)-Q8hpOKh8Dk8.mp4
[download]  40.9% of 36.04MiB at  1.14MiB/s ETA 00:18

midentify.sh Avao\ -\ Cascade\ \(Original\ Mix\)-Q8hpOKh8Dk8.mp4

ID_AUDIO_BITRATE=192000
ID_AUDIO_RATE=44100
Т.е. ему там чего-то не хватает, поэтому берёт 22 поток, у которого самый лучший аудио-битрейт, лучше, чем у тебя в твоём mkv, где мержится 160k из 251 потока.

Т.е., чтобы наверняка брать лучший звук в видео, нужно так:
youtube-dl -f 22 https://youtu.be/Q8hpOKh8Dk8
У меня -f 22 идёт по умолчанию, поэтому я его опускаю.

А окончательный вариант скачивания аудио-дорожки, чтобы уже наверняка с лучшим битрейтом будет такой:

youtube-dl -f 22 -o -  https://youtu.be/Q8hpOKh8Dk8 | ffmpeg -i - -acodec mp3 -ar 44100 -ab 192k video_sound.mp3

Windows ★★★
() автор топика
Последнее исправление: Windows (всего исправлений: 3)
Ответ на: комментарий от Windows

Ну или так:

youtube-dl -f 22 -x --audio-format mp3 --audio-quality 192K https://youtu.be/Q8hpOKh8Dk8
Перед этим желательно проверить, если youtube-dl позволяет:
youtube-dl -F https://youtu.be/Q8hpOKh8Dk8 | grep 192k
22           mp4        1280x720   hd720 , avc1.64001F,  mp4a.40.2@192k (best)
Этот вариант получается даже более предпочтительным, т.к. не надо возиться с наименованием mp3-файлов.

Windows ★★★
() автор топика
Последнее исправление: Windows (всего исправлений: 4)
Ответ на: комментарий от Black_Shadow

это тирэ

надо бы башку оторвать тому умнику, которые наплодил эту невнятную кучу знаков. Дефис, минус, тире... Какая в сраку разница.

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 1)
Ответ на: комментарий от ronkajitsu

youtube-dl вроде умеет самообновляться. Попробуй :)

 -U, --update
              Update this program to latest version.  Make sure that you have sufficient permissions (run with sudo if  needed

Вероятно, он у меня 22 канал не берёт, т.к. не знает что там лучшее качество.

По размеру картинки у тебя может быть берёт лучшее видео, но не лучший звук

Windows ★★★
() автор топика
Последнее исправление: Windows (всего исправлений: 3)
Ответ на: комментарий от Windows

А мой не умеет мержить, поэтому - 22.

Windows ★★★
() автор топика
Ответ на: комментарий от val-amart

это ты с гнутым getopt путаешь

Позикс однако.

anonymous
()
Ответ на: комментарий от targitaj

это тирэ

надо бы башку оторвать тому умнику, которые наплодил эту невнятную кучу знаков. Дефис, минус, тире... Какая в сраку разница.

Это точно.

Black_Shadow ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.