отображать только строки из вывода, содержащие указанное слово
Я ищу способ получить только строки, содержащие указанное слово, в данном случае все строки, содержащие слово 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
Продолжительность
См. Раздел Как получить продолжительность видео?
Формат / кодек
- Is there a way to use ffmpeg to determine the encoding of a file before transcoding?
- Using ffprobe to check audio-only files
Info on frames
See Get video frames information with ffmpeg