LINUX.ORG.RU

История изменений

Исправление Novell-ch, (текущая версия) :

ну без vaapiparse_h264 можно и обойтись

gst-launch-1.0 -f filesrc location=1.MTS ! tsdemux ! h264parse ! vaapidecode ! queue ! videorate ! video/x-raw,framerate=10/1 ! videoscale ! video/x-raw, width=480,height=240 ! vaapiencode_h264 ! h264parse ! progressreport ! avimux ! filesink location=out.avi

но vaapiencode_h264 не хочет работать так что его надо заменить на x264enc, может это бага самого gst-vaapi.
У самого x264enc есть куча свойств, мож там можно подкрутить и скорость будет еще лучше, типа x264enc speed-preset=ultrafast
плюс еще имеет апааратное декодирование

так что

gst-launch-1.0 -f filesrc location=1.MTS ! tsdemux ! h264parse ! vaapidecode ! queue ! videorate ! video/x-raw,framerate=10/1 ! videoscale ! video/x-raw, width=480,height=240 ! x264enc speed-preset=ultrafast ! h264parse ! progressreport ! avimux ! filesink location=out.avi
libva info: VA-API version 0.36.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_36
libva info: va_openDriver() returns 0
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'vaapidecode0': gst.vaapi.Display=context, display=(GstVaapiDisplay)NULL;
Redistribute latency...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
progressreport0 (00:00:03): 46 / 46 seconds (100.0 %)
Got EOS from element «pipeline0».
Execution ended after 0:00:02.454256369
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...


против обычного котороя тож забагованое походу
gst-launch-1.0 -f filesrc location=1.MTS ! tsdemux ! h264parse ! avdec_h264 ! queue ! videorate ! video/x-raw,framerate=10/1 ! videoscale ! video/x-raw, width=480,height=240 ! x264enc ! h264parse ! progressreport ! avimux ! filesink location=out.avi
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
Redistribute latency...
progressreport0 (00:00:05): 13 / 46 seconds (28.3 %)
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
progressreport0 (00:00:10): 26 / 46 seconds (56.5 %)
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
progressreport0 (00:00:15): 40 / 46 seconds (87.0 %)
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
progressreport0 (00:00:17): 46 / 46 seconds (100.0 %)
Got EOS from element «pipeline0».
Execution ended after 0:00:15.404307875
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Исходная версия Novell-ch, :

ну без vaapiparse_h264 можно и обойтись

gst-launch-1.0 -f filesrc location=1.MTS ! tsdemux ! h264parse ! vaapidecode ! queue ! videorate ! video/x-raw,framerate=10/1 ! videoscale ! video/x-raw, width=480,height=240 ! vaapiencode_h264 ! h264parse ! progressreport ! avimux ! filesink location=out.avi

но vaapiencode_h264 не хочет работать так что его надо заменить на x264enc, может это бага самого gst-vaapi.
У самого x264enc есть уча свойст, мож там можно подкрутить и скорость будет еще улчше, типа x264enc speed-preset=ultrafast
плюс еще имеет апааратное декодирование

так что

gst-launch-1.0 -f filesrc location=1.MTS ! tsdemux ! h264parse ! vaapidecode ! queue ! videorate ! video/x-raw,framerate=10/1 ! videoscale ! video/x-raw, width=480,height=240 ! x264enc speed-preset=ultrafast ! h264parse ! progressreport ! avimux ! filesink location=out.avi
libva info: VA-API version 0.36.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_36
libva info: va_openDriver() returns 0
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'vaapidecode0': gst.vaapi.Display=context, display=(GstVaapiDisplay)NULL;
Redistribute latency...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
progressreport0 (00:00:03): 46 / 46 seconds (100.0 %)
Got EOS from element «pipeline0».
Execution ended after 0:00:02.454256369
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...


против обычного котороя тож забагованое походу
gst-launch-1.0 -f filesrc location=1.MTS ! tsdemux ! h264parse ! avdec_h264 ! queue ! videorate ! video/x-raw,framerate=10/1 ! videoscale ! video/x-raw, width=480,height=240 ! x264enc ! h264parse ! progressreport ! avimux ! filesink location=out.avi
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
Redistribute latency...
progressreport0 (00:00:05): 13 / 46 seconds (28.3 %)
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
progressreport0 (00:00:10): 26 / 46 seconds (56.5 %)
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
progressreport0 (00:00:15): 40 / 46 seconds (87.0 %)
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
Redistribute latency...
progressreport0 (00:00:17): 46 / 46 seconds (100.0 %)
Got EOS from element «pipeline0».
Execution ended after 0:00:15.404307875
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...