How to find the recording time for a video from the linux command line [closed]
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 14 days ago.
Improve this questionI have some mpeg
s from my camcorder and I'm trying to figure out when they were recorded.
So far, I have tried transcode:
tcprobe -i M2U00249.MPG -H 10 -d258
Which resulted in:
[scan_pes.c] SCR= 0 ( 0) unit=0 @ offset 0.0000 (sec)
[tcprobe] MPEG program stream (PS)
[tcprobe] summary for M2U00249.MPG, (*) = not default, 0 = not detected
import frame size: -g 720x480 [720x576] (*)
aspect ratio: 16:9 (*)
frame rate: -f 29.970 [25.000] frc=4 (*)
PTS=0.2057, frame_time=33ms bitrate=9100 kbps
audio track: -a 0 [0] -e 48000,16,5 [48000,16,2] -n 0x2000 [0x2000] (*)
PTS=0.0895, bitrate=448 kbps
-D 3 --av_fine_ms 16 (frames 开发者_StackOverflow& ms) [0] [0]
MPlayer:
mplayer -identify M2U00249.MPG
Which resulted in:
Playing M2U00249.MPG.
ID_VIDEO_ID=0
ID_AUDIO_ID=128
MPEG-PS file format detected.
VIDEO: MPEG2 720x480 (aspect 3) 29.970 fps 9100.0 kbps (1137.5 kbyte/s)
ID_FILENAME=M2U00249.MPG
ID_DEMUXER=mpegps
ID_VIDEO_FORMAT=0x10000002
ID_VIDEO_BITRATE=9100000
ID_VIDEO_WIDTH=720
ID_VIDEO_HEIGHT=480
ID_VIDEO_FPS=29.970
ID_VIDEO_ASPECT=0.0000
ID_AUDIO_FORMAT=8192
ID_AUDIO_BITRATE=0
ID_AUDIO_RATE=0
ID_AUDIO_NCH=0
ID_START_TIME=0.09
ID_LENGTH=122.06
ID_SEEKABLE=1
ID_CHAPTERS=0
FFmpeg:
ffprobe -show_format -show_streams M2U00243.MPG
Which resulted in:
index=0
codec_name=mpeg2video
codec_long_name=MPEG-2 video
codec_type=video
codec_time_base=1001/60000
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
width=720
height=480
has_b_frames=1
sample_aspect_ratio=32:27
display_aspect_ratio=16:9
pix_fmt=yuv420p
id=0x1e0
r_frame_rate=30000/1001
avg_frame_rate=30000/1001
time_base=1/90000
start_time=0.178456
duration=282.682400
[/STREAM]
[STREAM]
index=1
codec_name=ac3
codec_long_name=ATSC A/52A (AC-3)
codec_type=audio
codec_time_base=0/1
codec_tag_string=[0][0][0][0]
codec_tag=0x0000
sample_rate=48000.000000
channels=6
bits_per_sample=0
id=0x80
r_frame_rate=0/0
avg_frame_rate=125/4
time_base=1/90000
start_time=0.079722
duration=282.720000
[/STREAM]
[FORMAT]
filename=M2U00243.MPG
nb_streams=2
format_name=mpeg
format_long_name=MPEG-PS format
start_time=0.079722
duration=282.781134
size=330334208.000000
bit_rate=9345296.000000
[/FORMAT]
None of these seems to have the time that the video was recorded. Is there something I'm missing or is the only way to get the recording time:
stat -c %y M2U00249.MPG
There is no required record of the absolute encode time in an MPEG program stream. Getting the last modified time from the file system is your best bet.
I use mediainfo
to get the recorded date of videos. I've not tried it with MPGs, but I shouldn't think it will be any different.
sudo apt-get -y install mediainfo
And then mediainfo <filename>
Or mediainfo -f <filename>
for full verbosity
https://forums.linuxmint.com/viewtopic.php?t=278052
apt-get install mediainfo-gui
in nemo or caja, right click on .mp4, then choose other application, Mediainfo-gui, choose view --> Html, and Debug --> Complete
精彩评论