2016-08-10 2 views
0

У меня есть локальный несжатый файл .avi, и я хочу его закодировать. Я пытался сделать это с Баш:Кодирование видео с gst из локального файла в локальный файл

"gst-launch-0.10 filesrc location=path/to/file.avi ~ video/x-raw-yuv, width=640, height=480, framerate=30/1, format=I420 ! nv_omx_h264enc quality-level=2 ! mp4mux ! filesink location= path/test.mp4" 

или переключить «mp4mux» с «qtmux».

Это не сработало, и выход отладки «ошибочный трубопровода: не мог связать filesrc0 с omxh264enc0»

Я хотел бы некоторую помощь и некоторые объяснения о синтаксисе и как эта вещь работает, ха-ха! Спасибо заранее! :)

+0

Вы пробовали встроенную команду ffmpeg - не знаете, какой дистрибутив вы используете, но на Raspbian Jessie он переименован в «avconv». Обычно команда с одной строкой запускает вас перед использованием параметров - что-то вроде: 'avconv -i input.avi -strict -2 output.mp4' – dbmitch

ответ

0

Ваш трубопровод не выглядит правильным. Попробуйте вместо этого:

gst-launch-0.10 filesrc location=path/to/file.avi caps="video/x-raw-yuv, width=640, height=480, framerate=30/1, format=I420" ! omxh264enc target-bitrate=15000000 control-rate=variable ! video/x-h264,stream-format=byte-stream,profile=high ! h264parse ! mp4mux ! filesink location=path/test.mp4 

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

Смежные вопросы