Как увеличить объем данных скорости передачи извлечения из видео и произвести их в текстовом файле?

У меня есть несколько видео в папке;

~/Downloads/movie1.mkv
~/Downloads/movie2.mkv
~/Downloads/movie3.mkv

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

Я установил ffmpeg.

Так, например, вывод fffmpeg-i movie1.mkv;

Metadata:
    encoder         : libebml v1.2.0 + libmatroska v1.1.0
    creation_time   : 2011-04-09T18:18:05.000000Z
  Duration: 00:04:27.71, start: 0.000000, bitrate: 10698 kb/s
    Stream #0:0(eng): Video: h264 (High), yuv420p(progressive), 1920x1038, SAR 1:1 DAR 320:173, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Metadata:
      title           : movie1
    Stream #0:1(eng): Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 1536 kb/s (default)
    Metadata:
      title           : DTS-ES 5.1 @ 1509 Kbps
    Stream #0:2(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
    Metadata:
      title           : Commentary
    Stream #0:3(eng): Subtitle: subrip
    Stream #0:4(eng): Subtitle: subrip

"Скорость передачи: 10 698 Кбит/с" являются ключевой ролью, которая я после здесь.

Позволяет притворяются, что все три фильма имеют ту же скорость передачи.

Я хотел бы извлечь информацию о скорости передачи из всех трех видео и сделать, чтобы они произвели как;

movie1.mkv 10698
movie2.mkv 10698
movie3.mkv 10698

Как я пошел бы об извлечении и выводе эта информация оптом?

Я пробовал комбинацию нахождения именем файла, ffmpeg, и затем | к grep., например; find . -name "*.mkv" -exec ffmpeg -i "${1%.mkv}" | grep "bitrate:"

Текущие попытки;

1. Команда; ffmpeg-i movie1.mkv 2> &1 | grep скорость передачи | sed 's/bitrate: (.*), kb/\1/g'

Возвраты;

Duration: 00:04:27.71, start: 0.000000, bitrate: 10698 kb/s

2. Команда; find . -name "*.mkv" -exec ffprobe -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 "${~/Downloads/1%.mkv}" ';'

Возвраты

~/Downloads/1%.mkv: No such file or directory
~/Downloads/1%.mkv: No such file or directory
~/Downloads/1%.mkv: No such file or directory

Я чувствую, что я близок здесь, и что существует только что-то не так с находкой и вспоминанием вывода находки в ffprobe.

3
задан 13 November 2018 в 15:28

1 ответ

Экранировать:

find . -name "*.mkv" -print0 | xargs -0 -i{} sh -c " echo -n '{} ' && ffmpeg -i '{}' 2>&1 | sed -n -e 's/^.*bitrate: //p' "

Зарегистрировать result.txt:

find . -name "*.mkv" -print0 | xargs -0 -i{} sh -c " echo -n '{} ' && ffmpeg -i '{}' 2>&1 | sed -n -e 's/^.*bitrate: //p' " > result.txt

Вы будете видеть в файле result.txt:

somefile1.mkv 1788 kb/s
somefile2.mkv 1681 kb/s
...

Пример отформатированного вывода:

find . -name "*.mkv" -print0 | xargs -0 -i{} sh -c " echo -n 'Filename: {}, Bitrate is: ' && ffmpeg -i '{}' 2>&1 | sed -n -e 's/^.*bitrate: //p' " > result.txt

Вы будете видеть в файле result.txt:

Filename: somefile1.mkv, Bitrate is: 1788 kb/s
Filename: somefile2.mkv, Bitrate is: 1681 kb/s
...
2
ответ дан 1 December 2019 в 16:50

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

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