我有这个管道:
gst-launch -v filesrc location=video.mkv ! matroskademux name=d \
d. ! queue ! ffdec_h264 ! subtitleoverlay name=overlay ! ffmpegcolorspace ! x264enc ! mux. \
d. ! queue ! aacparse ! mux. \
filesrc location=fr.srt ! subparse ! overlay. \
matroskamux name=mux ! filesink location=vid.mkv
Run Code Online (Sandbox Code Playgroud)
我正在尝试将字幕刻录到视频中.我已经使用字幕阅读文件,但上面的管道卡住了,我有这样的消息:
queue_dataflow gstqueue.c:1243:gst_queue_loop:<queue0> queue is empty
Run Code Online (Sandbox Code Playgroud)
我的管道出了什么问题?队列元素的作用是什么?我还没有真正理解它在文档中所说的内容.
小智 13
queue元素为管道添加线程边界并支持缓冲.输入端将缓冲区放入队列,然后在另一个线程的输出端清空.通过队列元素上的属性,您可以设置队列的大小和其他一些内容.
我没有看到你的管道有什么特别的错误,但那里的消息告诉你,在某个时刻,其中一个队列是空的.这可能是一个问题.它可能会在以后再次变得更充实.
您必须检查GStreamer调试日志,看看是否有任何暗示实际问题的内容.我最好的猜测是,由于x264enc的编码器延迟,音频队列运行完全.尝试使音频队列更大,或在x264enc上设置tune = zerolatency.
我也看到你正在使用GStreamer 0.10.它已不再维护超过两年,对于新的应用程序,您应该考虑升级到1.x版本.
| 归档时间: |
|
| 查看次数: |
6351 次 |
| 最近记录: |