我想在树莓派上用Gstreamer对我的电视录像进行编码。受this post启发,以下代码适用于下载的mkv:
/usr/bin/gst-launch-1.0 -e filesrc location=/media/Seagate/complete/TV/Better\ Call\ Saul/Season\ 01/Better\ Call\ Saul\ -\ S01E10\ -\ Marco.mkv ! decodebin name=demux ! queue ! audioconvert ! audio/x-raw ! audiorate ! avenc_ac3 bitrate=320000 ! mux. mpegtsmux name=mux ! filesink location=/media/Seagate/pvr/Buitenhof_compressed.mkv demux. ! queue ! videoconvert ! deinterlace ! omxh264enc target-bitrate=2000000 control-rate=1 inline-header=true periodicty-idr=250 interval-intraframes=250 ! "video/x-h264,profile=high" ! h264parse ! mux.使用的文件具有以下结构(gst-discoverer输出):
Topology:
container: Matroska
audio: AC-3 (ATSC A/52)
video: H.264
Properties:
Duration: 0:49:18.048000000
Seekable: yes
Tags:
container format: Matroska
audio codec: AC-3 audio
language code: und
video codec: H264
minimum bitrate: 7288
bitrate: 24263
maximum bitrate: 9206但是,我的录制软件(TVHeadend)会输出以下格式:
Topology:
container: Matroska
subtitles: application/x-subtitle-unknown
subtitles: application/x-subtitle-unknown
audio: MPEG-1 Layer 2 (MP2)
audio: AC-3 (ATSC A/52)
audio: MPEG-1 Layer 2 (MP2)
video: H.264
Properties:
Duration: 0:00:06.440000000
Seekable: yes
Tags:
title: Buitenhof
extended comment: DATE_BROADCASTED=2015-05-24 10:05:00
container format: Matroska
audio codec: MPEG 1 Audio, Layer 2
language code: nl
nominal bitrate: 256000
has crc: true
channel mode: stereo
video codec: H264
minimum bitrate: 8972400
bitrate: 16546750
maximum bitrate: 22841600我如何告诉管道跳过字幕流而使用AC-3和H264流?我已经尝试了decodebin name=demux demux.audio_01,但没有效果。输出为
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Missing element: application/x-subtitle-unknown decoder
Missing element: application/x-subtitle-unknown decoder如果能有字幕也不错,但没有字幕我也能活下去。
发布于 2015-05-25 03:29:46
流的顺序与问题无关。可用视频内存不足。对于全高清mkv,我需要将显存分割设置为128MB。
一种方法是在高级菜单下为我的raspbian版本运行sudo raspi-config,视频内存拆分。需要重新启动。
在此之后,我发布的命令就可以工作了
https://stackoverflow.com/questions/30423979
复制相似问题