avprobe test.h264
Выполнение выходовКак получить длительность/битрейт в H264 файл с avconv/FFmpeg
Input #0, h264, from 'test.h264':
Duration: N/A, bitrate: N/A
Stream #0.0: Video: h264 (High), yuv420p, 720x480, 25 fps, 25 tbn, 50 tbc
Выполнение file test.h264
выходов
test.h264: JVT NAL sequence, H.264 video @ L 30
Обратите внимание, что файл не поврежден или поврежден, я может играть без проблем в VLC.
Есть ли способ получить продолжительность и битрейт из необработанного файла H264? Я где-то читал, что это возможно, если я сначала декодирую файл, но я не уверен, как это можно сделать.
Редактировать # 1
Я один создания файла H264 с библиотекой Python под названием picamera
.
Edit # 2
Консоль вывода при работе avconv -i test.h264 -f null -
avconv version 11.7-6:11.7-1~deb8u1+rpi1, Copyright (c) 2000-2016 the Libav developers
built on Jun 17 2016 02:13:49 with gcc 4.9.2 (Raspbian 4.9.2-10)
[h264 @ 0x1bcc200] Estimating duration from bitrate, this may be inaccurate
Input #0, h264, from 'test.h264':
Duration: N/A, bitrate: N/A
Stream #0.0: Video: h264 (High), yuv420p, 720x480, 25 fps, 25 tbn
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf56.1.0
Stream #0.0: Video: rawvideo, yuv420p, 720x480, q=2-31, 200 kb/s, 25 tbn, 25 tbc
Metadata:
encoder : Lavc56.1.0 rawvideo
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
Press ctrl-c to stop encoding
frame= 208 fps= 68 q=0.0 Lsize= 0kB time=10000000000.00 bitrate= 0.0kbits/s
video:13kB audio:0kB other streams:0kB global headers:0kB muxing overhead: unknown
«мультиплексирование» файл в контейнер, кажется, работает, но при выполнении команды он выводит данные 'Non-однообразные DTS в выходном потоке 0: 0; previous: 203, текущий: 0; изменение на 204. Это может привести к неправильной отметке времени в выходном файле. 'для каждого кадра, который он пытается кодировать для файла MP4. Также он надежный? Благодаря! – maximedupre
Нет временных меток в исходном битовом потоке, поэтому он вменяет «0» в каждый входящий кадр, что, конечно, неверно. Но не проблема. Если ваш бит-поток не имеет частоты кадров, хранящейся, как упоминал @Ronald, тогда вы должны добавить '-framerate N' перед' '-i', где N - значение fps. Else ffmpeg будет принимать 25 кадров в секунду. – Mulvya
'avconv -framerate 30 -i test.h264 -c copy test.mp4' отлично работает! Благодаря! – maximedupre