отображать только строки из вывода, содержащие указанное слово

Я ищу способ получить только строки, содержащие указанное слово, в данном случае все строки, содержащие слово Stream, из вывода

Я пытался;

streams=$(ffprobe -i  "movie.mp4"  | grep "Stream")

но это не дало результатов..

или мне нужно вывести его в файл, а затем попытаться извлечь строки, которые я ищу?

2 ответа

Решение

@paulsm4 был на высоте... вывод идет в STDERR.

streams=$(ffprobe -i  "movie.mp4"  |& grep "Stream")

Обратите внимание на &

Нет необходимости в grep. Просто используйте ffprobe напрямую, чтобы получить всю необходимую информацию.

Вывести всю информацию

ffprobe -loglevel error -show_format -show_streams input.mp4

Только информация о видео

ffprobe -loglevel error -show_streams -select_streams v input.mp4

Только аудиоинформация

ffprobe -loglevel error -show_streams -select_streams a input.mp4

Ширина x высота

См. Раздел Получение размера / разрешения / ширины x высоты видео из ffmpeg

Продолжительность

См. Раздел Как получить продолжительность видео?

Формат / кодек

Info on frames

See Get video frames information with ffmpeg

More info and examples

See FFmpeg Wiki: ffprobe

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