
Я хочу записать видео, чтобы выложить его на YouTube.
Какой конвейер я могу использовать для своей трансляции, чтобы получить наилучшее качество для YouTube (минимизировать количество перекодировок и т. д.)?
Я думаю, что он должен содержать некоторые фильтры, а также аудио- и видеокодеки, которые лучше всего работают с Youtube.
Я планирую использовать gst-launch
и ximagesrc
.
решение1
В настоящее время я использую следующий конвейер:
gst-launch-1.0 -e ximagesrc xid=$ID ! video/x-raw,framerate=24/1 ! queue ! videoconvert ! \
videorate ! queue ! x264enc key-int-max=12 cabac=1 bframes=2 ! 'video/x-h264,profile=high' ! \
queue ! mp4mux name=mux reserved-bytes-per-sec=100 reserved-max-duration=20184000000000 reserved-moov-update-period=100000000 ! \
queue ! filesink location=video.mp4 pulsesrc device=$DEV ! queue ! audioconvert ! \
audioresample ! 'audio/x-raw, rate=48000' ! queue ! lamemp3enc bitrate=320 ! queue ! mux.
Затем я записываю звук на основе звуковой дорожки и объединяю их с помощью mencoder :-/
mencoder -ovc copy -oac mp3lame video.mp4 -audiofile audio.wav -o cut.mp4 -endpos 27:13
Я не разобрался, как кодировать AAC (который предпочитают на YouTube), и это больше не является для меня приоритетом.
решение2
На самом деле, я в итоге использовал приложение "simple screen recorder". Его недостаток в том, что он не может заблокировать окно X11 (только координаты), но его преимущество в том, что он снимает довольно хорошие видео с синхронизацией аудио-видео, что было проблемой с gst.