Я пытаюсь использовать Gstreamer на Raspberry Pi модели B для кодирования замедленного видео из серии JPEG. Точный конвейер я опубликую в конце этого поста. Полученное видео можно воспроизвести с помощью VLC, но без другого проигрывателя, который я пробовал. Это не работает с Firefox, Safari и Chrome на Mac и с браузером Chromium на Pi. Вы можете посмотреть видео здесь:
Неудачный кодировщик Gstreamer mp4
Если вы попытаетесь воспроизвести видео, оно застревает в первом кадре, который на самом делекадр примерно с 2/3 пути через видео. Иногда переключение с помощью ползунка прогресса позволяет вам нормально воспроизводить часть видео.
Если я запускаю avprobe -show_packets для файла, я вижу, что первый кадр (ключевой кадр) имеетотрицательная отметка времени. Вот фрагмент вывода:
[packets.packet.0]
codec_type=video
stream_index=0
pts=-140462610
pts_time=-140462.610000
dts=-140468610
dts_time=-140468.610000
duration=0
duration_time=0.000000
size=135005.000000
pos=48
flags=K
Вот самый последний конвейер, который я пробовал. Я перепробовал многие, но ничего не вышло:
gst-launch-1.0 multifilesrc location="$mfslocation"\
caps="image/jpeg,framerate=10/1" ! jpegdec ! omxh264enc !\
video/x-h264,stream-format=byte-stream,profile=high !\
h264parse ! mp4mux ! filesink location="$testlocation"
mfslocation: image_% 03d.jpg (первый JPEG - image_000.jpg)
testlocation: fileh264. mp4
Пока что мое решение проблемы - передать кодирование видео на Mac с помощью ffmepg. Работает нормально, как вы можете видеть здесь:
Фильм с замедленной съемкой веб-камеры Korat