2016-07-27 135 views
1

我想通過分析一個MP4視頻:gstreamer0.10 filesrc元素找不到文件

gst-launch-0.10 filesrc location=file:~/examples/fullstream.mp4 ! tsparse ! tsdemux ! queue ! ffdec_h264 max-threads=0 ! ffmpegcolorspace ! autovideosink name=video 

gst-launch-0.10 filesrc location=http://192.168.40.228:8080/fullstream.mp4 ! mpegtsdemux ! queue ! ffdec_h264 max-threads=1 ! ffmpegcolorspace ! autovideosink name=video 

但終端顯示:

Setting pipeline to PAUSED ... 
ERROR: Pipeline doesn't want to pause. 
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Resource not found. 
Additional debug info: 
gstfilesrc.c(1042): gst_file_src_start(): /GstPipeline:pipeline0/GstFileSrc:filesrc0: 
No such file "file:/home/zhaozhenjie/examples/fullstream.mp4" 
Setting pipeline to NULL ... 
Freeing pipeline ... 

~/examples/fullstream.mp4做存在。所以我想問一下代碼有什麼問題?我使用Ubuntu 14.04。

回答

1

您不能使用filesrc作爲網絡流。對於HTTP服務的文件,你必須使用souphttpsrc - 它是可也GStreamer 0.10

gst-launch-0.10 souphttpsrc location=http://192.168.40.228:8080/fullstream.mp4 ! qtdemux name=demuxer demuxer. ! queue ! faad ! audioconvert ! audioresample ! autoaudiosink demuxer. ! queue ! ffdec_h264 ! ffmpegcolorspace ! autovideosink 

UPDATE

這是使用filesrc - 路徑的格式只是正常的絕對路徑,或從一個地方相對路徑在那裏你執行(如果需要使用雙「周​​圍):

gst-launch-0.10 filesrc location=/home/user/examples/fullstream.mp4 ! qtdemux name=demuxer demuxer. ! queue ! faad ! audioconvert ! audioresample ! autoaudiosink demuxer. ! queue ! ffdec_h264 ! ffmpegcolorspace ! autovideosink 

這也許應該也行..

gst-launch-0.10 filesrc location=~/examples/fullstream.mp4 ... 
+0

謝謝。但是第二個腳本中的'location = http://192.168.40.228:8080/fullstream.mp4'並不是我真正想要的,現在我無法編輯。我把我的文件放在我的主文件夾'〜/ examples/fullstream.mp4'中,但filesrc顯示它不存在。 – zzj

+0

@ ZhenjieZhao編輯答案。 – nayana

+0

是的。謝謝。 – zzj