On Mon, Jul 5, 2010 at 9:11 AM, Stefan Westerfeld <stefan(a)space.twc.de> wrote:
Stefan -- very nice and useful program. Thanks for making this available!
FYI -- To compile on Fedora, I had to install the following to get
'configure' to stop complaining:
1) yum install 'gstreamer-devel' (obviously)
2) yum install gstreamer-plugins-base-devel (less obvious as config complains:
No package 'gstreamer-interfaces-0.10' found // No package
'gstreamer-video-0.10' found )
3) yum install ncurses-devel
The application compiles and works nicely after that.
However, I have some questions/issues/bugs:
(1) I do not have pulseaudio running, and all gstreamer apps have a
pause as they attempt to contact pulseaudio, and then emit a message:
"socket(): Address family not supported by protocol" ... in a GUI app,
this might make less of a difference, since you don't end up having
the app respond to ^C signals. However, gst123 does -- and during the
period when gstreamer is contacting the pulseaudio socket, the
application becomes temporarily unresponsive, even to signals like ^C.
By the time it starts responding again it's already loaded the next
file and gone unresponsive again due to timing out on the nonexistent
pulseaudio socket. This makes the program very hard to interrupt.
Question: is there a way to disable checking for pulseaudio for each
new file when specifying multiple media files. e.g.: "gst123 *.ogg" ?
For example: do it once at application startup, or even better, a way
to prevent it from happening all-together via environment variable,
configuration, etc. Best would be some kind of environmental check so
that the timeout on socket needn't occur.The timeout significantly
slows down operation of the program even when not issuing ^C's.
(2) For HD Video recorded off digital broadcasts, but not for regular
def broadcast video, there's a problem when issuing the '->' (forward
arrow) or '<-' (backward arrow) commands to skip forwards or back: As
you go forward, there's an increasingly longer delay before the audio
syncs up and starts playing. Hit '->' a few times and the audio never
seems to sync up, and sometimes the video stays paused on the same
frame, even though the time display in the terminal continues
updating.
Note that the files producing these errors have some oddball results
output from "ffmpeg -i" but that's how mythtv's mpg files look, for HD
broadcasts:
...............
[mpeg2video @ 0x1c2fcd0]mpeg_decode_postinit() failure
Last message repeated 7 times
[mpegts @ 0x1c2b5f0]MAX_READ_SIZE:5000000 reached
Input #0, mpegts, from '/home/npm/Videos/1551_20100407195900.mpg':
Duration: 02:06:59.36, start: 55515.108733, bitrate: 10490 kb/s
Program 1
Stream #0.0[0x7c0]: Video: mpeg2video, yuv420p, 1280x720 [PAR 1:1
DAR 16:9], 38810 kb/s, 62.39 fps, 59.94 tbr, 90k tbn, 119.88 tbc
Stream #0.1[0x7c1]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
Stream #0.2[0x7c2]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
At least one output file must be specified
................
(3) Note that if the above file is played out of a list 'gst123 *.mpg'
then at least it gets audio playback. The same file, started
standalone, shows video, but gives plays no audio:
.............
gnulem-346-~> gst123 /home/npm/Videos/1551_20100407195900.mpg
Playing file:///home/npm/Videos/1551_20100407195900.mpg
** (gst123:12323): CRITICAL **: gst_mpeg_descriptor_find: assertion
`desc != NULL' failed
** (gst123:12323): CRITICAL **: gst_mpeg_descriptor_find: assertion
`desc != NULL' failed
No accelerated IMDCT transform found
** (gst123:12323): CRITICAL **: gst_mpeg_descriptor_find: assertion
`desc != NULL' failed
** (gst123:12323): CRITICAL **: gst_mpeg_descriptor_find: assertion
`desc != NULL' failed
No accelerated IMDCT transform found
socket(): Address family not supported by protocol
Codec : Dolby Digital (AC-3) (audio) Bitrate : 192.0 kbit/s
............................
Niels
http://nielsmayer.com
PS: Feature request: decode caption information from videos, and
display in video. And/or output a timed-text, SMIL or other file
containing the caption information and time-of-presentation
information. This can be very useful in searching content of video
files.